diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index 1d3ead096..f9415c3f0 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 67aa0563c33bc9a98facfff6bf5a1a8ace483d99..4c7439645974fd20f9f23196c5fbdce6ce324d13 100644 +index f332458dbc26bb0e77ca9b7446f4ae800c359d13..6ff9e8bb038e7e1b89796a2e9d271371052ccf22 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -168,7 +168,7 @@ import org.bukkit.plugin.PluginManager; @@ -34,7 +34,7 @@ index aa76a24421cdb3908a3544d92eb3d1e3c2ebedc4..8211c152e6f4232e82e452b08047e457 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 6b5d09b34c9fe88548a14e64e9aa42841e9031f5..8bad6672c689c7bc65e5941887b3826ad99e36bb 100644 +index 661db9eb343b32f97d6e7ccb93e56e24213b6367..305fb567e5407bbdc9fbc30bf8ce2839e8fb15c9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -314,6 +314,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1174,16 +1174,18 @@ index f36ccb36753d1b1a6c7706729e598078f4467644..123f8418544468d5c8d0d280f7dd44eb protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 97cab38a47e302f40ca69ef4eb8f7dcb11eccf35..75f82922260b2c0666021e7ed42dfde401e1a9d6 100644 +index 97cab38a47e302f40ca69ef4eb8f7dcb11eccf35..9d5d71135b00eb0ab1b1dfaf7925e13b8a44d22c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -60,6 +60,11 @@ public class Silverfish extends Monster { +@@ -60,6 +60,13 @@ public class Silverfish extends Monster { } // Purpur end + @Override + public void initAttributes() { + this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.silverfishMaxHealth); ++ this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(this.level().purpurConfig.silverfishMovementSpeed); ++ this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.silverfishAttackDamage); + } + @Override @@ -1539,7 +1541,7 @@ index d514faecb9e6b244aa043383fa072316da939518..a4ca761f6e8e6e8f86fc20ce5e3dcf92 protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d6383ae04 100644 +index bb64706d04fb25dcd564799c26fad231086ff827..eb66b0debaf18dccb74503ab5b700759b65dc725 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -113,116 +113,211 @@ public class PurpurWorldConfig { @@ -2244,7 +2246,7 @@ index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -479,191 +828,363 @@ public class PurpurWorldConfig { +@@ -479,191 +828,367 @@ 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); @@ -2439,6 +2441,8 @@ index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d public boolean silverfishRidableInWater = true; public boolean silverfishControllable = true; + public double silverfishMaxHealth = 8.0D; ++ public double silverfishMovementSpeed = 0.25D; ++ public double silverfishAttackDamage = 1.0D; private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); @@ -2449,6 +2453,8 @@ index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d + set("mobs.silverfish.attributes.max_health", oldValue); + } + silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); ++ silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed); ++ silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage); } public boolean skeletonRidable = false; @@ -2608,7 +2614,7 @@ index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d } public boolean tadpoleRidable = false; -@@ -678,64 +1199,125 @@ public class PurpurWorldConfig { +@@ -678,64 +1203,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2734,7 +2740,7 @@ index bb64706d04fb25dcd564799c26fad231086ff827..767d977cf47b0c7d94c248091f3ce98d } public boolean wardenRidable = false; -@@ -750,83 +1332,167 @@ public class PurpurWorldConfig { +@@ -750,83 +1336,167 @@ public class PurpurWorldConfig { public boolean witchRidable = false; public boolean witchRidableInWater = true; public boolean witchControllable = true; diff --git a/patches/server/0023-Zombie-horse-naturally-spawn.patch b/patches/server/0023-Zombie-horse-naturally-spawn.patch index 2221026ca..fa69e8d76 100644 --- a/patches/server/0023-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0023-Zombie-horse-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Zombie horse naturally spawn diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index bb61ccf3246ea69cf1eb097a95c3324d0802dae1..cad36bdd7463e23f23ed77f1b430031a19145de4 100644 +index df01eaebfcb759eefb512b3c7eeb861e96f88688..f1cedc22891cf2c91115188545d752567d3761b1 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -814,10 +814,18 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -30,10 +30,10 @@ index bb61ccf3246ea69cf1eb097a95c3324d0802dae1..cad36bdd7463e23f23ed77f1b430031a 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 d60746b2a05a93683be845bdf36131c71091ed9b..f0ea2bcb88630395d6f2bf2e7a658abcad124be4 100644 +index b5ca3f24e147b360f634da0331547e866d7ae175..670b1a2e817d665ba4705febf01d551a24fc4543 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1509,6 +1509,7 @@ public class PurpurWorldConfig { +@@ -1513,6 +1513,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -41,7 +41,7 @@ index d60746b2a05a93683be845bdf36131c71091ed9b..f0ea2bcb88630395d6f2bf2e7a658abc private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -1525,6 +1526,7 @@ public class PurpurWorldConfig { +@@ -1529,6 +1530,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/0035-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0035-Snowman-drop-and-put-back-pumpkin.patch index a1c33994a..6845a4ef9 100644 --- a/patches/server/0035-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0035-Snowman-drop-and-put-back-pumpkin.patch @@ -24,10 +24,10 @@ index a54893d51cc1ce204e59a6ffe8b84228775af4da..0060414b1d5afde56372ce121e9d37a1 return tryRide(player, hand); // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2cc17c7991c645e5cd2d13cecc552baf91b7bc8a..8b5a4141e414bf1e58237532bbc47729af07c4e8 100644 +index bf5ba934de365e7139a59db527aa54e54261eb77..8b380efe1e3e382c10493afba292e1c06251e557 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1198,6 +1198,7 @@ public class PurpurWorldConfig { +@@ -1202,6 +1202,7 @@ public class PurpurWorldConfig { public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -35,7 +35,7 @@ index 2cc17c7991c645e5cd2d13cecc552baf91b7bc8a..8b5a4141e414bf1e58237532bbc47729 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1209,6 +1210,7 @@ public class PurpurWorldConfig { +@@ -1213,6 +1214,7 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); diff --git a/patches/server/0046-Villagers-follow-emerald-blocks.patch b/patches/server/0046-Villagers-follow-emerald-blocks.patch index c44ea3b85..fdcb90108 100644 --- a/patches/server/0046-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0046-Villagers-follow-emerald-blocks.patch @@ -54,10 +54,10 @@ index a4ca761f6e8e6e8f86fc20ce5e3dcf92a66b3f2a..6990d6dc306b1d25544793b365fd6f7b 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 a35d9ed67ce320b996981696dc9f515712f52204..7dfe1afed783938308d8f89629cf91fb34f358ee 100644 +index fcc651f3175257280c52a543260bdac7940982cd..5490a51a959eb635e5bbb0f6720c979658817f1f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1461,6 +1461,7 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = true; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -65,7 +65,7 @@ index a35d9ed67ce320b996981696dc9f515712f52204..7dfe1afed783938308d8f89629cf91fb private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1467,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1471,6 +1472,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,7 +73,7 @@ index a35d9ed67ce320b996981696dc9f515712f52204..7dfe1afed783938308d8f89629cf91fb } public boolean vindicatorRidable = false; -@@ -1489,6 +1491,7 @@ public class PurpurWorldConfig { +@@ -1493,6 +1495,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = true; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index a35d9ed67ce320b996981696dc9f515712f52204..7dfe1afed783938308d8f89629cf91fb private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1499,6 +1502,7 @@ public class PurpurWorldConfig { +@@ -1503,6 +1506,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/0047-Allow-leashing-villagers.patch b/patches/server/0047-Allow-leashing-villagers.patch index 687d50483..cc8e09a3b 100644 --- a/patches/server/0047-Allow-leashing-villagers.patch +++ b/patches/server/0047-Allow-leashing-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow leashing villagers diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e8ccd831c629418d96f81ef3be03e8a5d43f7213..b65ae7b4ddc7a1f3d2f66d63a62b766f5803b5ad 100644 +index 66f971c14efe9ecac26e84d031334f9bdeb87095..5d910738b610041487fc63f1657b827c4ca03107 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2762,6 +2762,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -49,10 +49,10 @@ index 6990d6dc306b1d25544793b365fd6f7be8a37201..0d5e828a7fb6fd6facc04a27175541ac @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7dfe1afed783938308d8f89629cf91fb34f358ee..a15dd3994240a4b48558f8d92a546a24153419e8 100644 +index 5490a51a959eb635e5bbb0f6720c979658817f1f..f4df942895484e9fdc415ffce782d0a5312518c4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1458,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1462,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index 7dfe1afed783938308d8f89629cf91fb34f358ee..a15dd3994240a4b48558f8d92a546a24 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1469,6 +1470,7 @@ public class PurpurWorldConfig { +@@ -1473,6 +1474,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 7dfe1afed783938308d8f89629cf91fb34f358ee..a15dd3994240a4b48558f8d92a546a24 } public boolean vindicatorRidable = false; -@@ -1492,6 +1494,7 @@ public class PurpurWorldConfig { +@@ -1496,6 +1498,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index 7dfe1afed783938308d8f89629cf91fb34f358ee..a15dd3994240a4b48558f8d92a546a24 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1503,6 +1506,7 @@ public class PurpurWorldConfig { +@@ -1507,6 +1510,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/0062-Configurable-jockey-options.patch b/patches/server/0062-Configurable-jockey-options.patch index 08b743a19..637ee8ae6 100644 --- a/patches/server/0062-Configurable-jockey-options.patch +++ b/patches/server/0062-Configurable-jockey-options.patch @@ -167,7 +167,7 @@ index 883cd9a96a1d4276ca10c5558b553c36a1bb0d79..0dcf5638e12c7670e6a5e577210e2542 public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57f7e91eac 100644 +index a5fec4cc1390581d98b5d64aa12e0a29ae149efc..58bab65407d4e1cff37d81d6bca00bf53ee80e24 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -608,6 +608,9 @@ public class PurpurWorldConfig { @@ -210,7 +210,7 @@ index 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 } public boolean illusionerRidable = false; -@@ -1694,6 +1706,9 @@ public class PurpurWorldConfig { +@@ -1698,6 +1710,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1705,6 +1720,9 @@ public class PurpurWorldConfig { +@@ -1709,6 +1724,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 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 } public boolean zombieHorseRidable = false; -@@ -1741,6 +1759,9 @@ public class PurpurWorldConfig { +@@ -1745,6 +1763,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1752,6 +1773,9 @@ public class PurpurWorldConfig { +@@ -1756,6 +1777,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 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 } public boolean zombifiedPiglinRidable = false; -@@ -1759,6 +1783,9 @@ public class PurpurWorldConfig { +@@ -1763,6 +1787,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 80b2c27eb66749fa74620f12899cf728043d252f..af58101a8c364740b5f0fb1d859d0c57 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1770,5 +1797,8 @@ public class PurpurWorldConfig { +@@ -1774,5 +1801,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/0071-Squid-EAR-immunity.patch b/patches/server/0071-Squid-EAR-immunity.patch index 11549c95e..8749578cb 100644 --- a/patches/server/0071-Squid-EAR-immunity.patch +++ b/patches/server/0071-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 f2f965d6ffb56418f7ed1d511e94170d4eb2313f..41a164c0009e6c7112541b49f26ba9849a16f6b1 100644 +index a187e93571e359b416f9ff6f7152ca574f64c443..5d3ef207dba95fdfa2dcc7f8c95ca94dd3d18845 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1473,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index f2f965d6ffb56418f7ed1d511e94170d4eb2313f..41a164c0009e6c7112541b49f26ba984 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1482,6 +1483,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1487,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0073-Configurable-villager-breeding.patch b/patches/server/0073-Configurable-villager-breeding.patch index 3c053ae9e..a5492b978 100644 --- a/patches/server/0073-Configurable-villager-breeding.patch +++ b/patches/server/0073-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 33c0ac18fa4c5b47d60cc774fe72d2d68c14e025..ad3e340c2487aa1dc2ed3ab08fa8747b private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 33ea997e6517fb39a3f676c131824cffccdaf5af..73c4d1f29199af355cc467c7322637044805ea52 100644 +index 0e5a27b2f5a9b59ff3d6ca07147aad5918e80a25..71cd3256d2378b0bcfa599b0502aabcfdf951d8a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1631,6 +1631,7 @@ public class PurpurWorldConfig { +@@ -1635,6 +1635,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index 33ea997e6517fb39a3f676c131824cffccdaf5af..73c4d1f29199af355cc467c732263704 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1643,6 +1644,7 @@ public class PurpurWorldConfig { +@@ -1647,6 +1648,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/0076-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0076-Add-vindicator-johnny-spawn-chance.patch index 0996c89d1..ea582246d 100644 --- a/patches/server/0076-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0076-Add-vindicator-johnny-spawn-chance.patch @@ -21,10 +21,10 @@ index eb6dce8b2dcc7f4e63c69cfa6acbd9b36a923706..feb7eb93bd20e141ff86ed2e91b9cd0f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8dc68f00b488da2881c35061bc729edfe295a1c0..afe3b998b4ef5b086969e58a656adedf8b9600ea 100644 +index fa4fdf0dd635dfc409dbd096c490c1cdca8a3189..baf573e75d4575a886830e2c11c162f07a04886a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1658,6 +1658,7 @@ public class PurpurWorldConfig { +@@ -1662,6 +1662,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -32,7 +32,7 @@ index 8dc68f00b488da2881c35061bc729edfe295a1c0..afe3b998b4ef5b086969e58a656adedf private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1668,6 +1669,7 @@ public class PurpurWorldConfig { +@@ -1672,6 +1673,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0081-Stop-squids-floating-on-top-of-water.patch b/patches/server/0081-Stop-squids-floating-on-top-of-water.patch index 0bbcd511f..ed5895a71 100644 --- a/patches/server/0081-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0081-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index c8f7c43134e7c51ce8af5b3c1a28c11db67715a2..5b98889715bf62eb4f15c0b45ada2c70 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 28ab98c61bf9e1371b6fdf254f2fcc2cd65acdd8..3c87babcb6c9a0bbbf433cce45739e218cca3824 100644 +index e6097c61c563eb6f77e3f99e1785429c452272f4..1f56afb08d0f1460b3eaca33cc7dedb2707a5aea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1498,6 +1498,7 @@ public class PurpurWorldConfig { +@@ -1502,6 +1502,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 28ab98c61bf9e1371b6fdf254f2fcc2cd65acdd8..3c87babcb6c9a0bbbf433cce45739e21 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1508,6 +1509,7 @@ public class PurpurWorldConfig { +@@ -1512,6 +1513,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/0083-Customizable-wither-health-and-healing.patch b/patches/server/0083-Customizable-wither-health-and-healing.patch index 17da06508..b59aa4662 100644 --- a/patches/server/0083-Customizable-wither-health-and-healing.patch +++ b/patches/server/0083-Customizable-wither-health-and-healing.patch @@ -23,10 +23,10 @@ index 4b1821ad50103cb996bb3ff9b9668f22ffff518f..402f67ca333e09c684ae083071715734 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 3c87babcb6c9a0bbbf433cce45739e218cca3824..8c7f9a391935e1527856163dd6860abc3514c738 100644 +index 1f56afb08d0f1460b3eaca33cc7dedb2707a5aea..5ddeb816c1bc7ee07a131be2e4e99b58e4d06db1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1735,6 +1735,8 @@ public class PurpurWorldConfig { +@@ -1739,6 +1739,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 3c87babcb6c9a0bbbf433cce45739e218cca3824..8c7f9a391935e1527856163dd6860abc private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1750,6 +1752,8 @@ public class PurpurWorldConfig { +@@ -1754,6 +1756,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0087-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0087-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 53d4405a4..082012c53 100644 --- a/patches/server/0087-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0087-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -70,10 +70,10 @@ index 43c48bb14957b93ee3b0191360c09f710bc008e0..b39d8ee4c6e9483a15991be3b1440384 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 f9a5248da33fe7f224411cc3b9b35fb65b5d4572..60444ab2a15f2e1f2ea0bf291cc3f932c3f1dcdc 100644 +index 0cf94608f8b12f1b813c4d786090a03116233f89..3e4a32fa6a029b851029eccb0a25680bbb467c3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1869,6 +1869,7 @@ public class PurpurWorldConfig { +@@ -1873,6 +1873,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -81,7 +81,7 @@ index f9a5248da33fe7f224411cc3b9b35fb65b5d4572..60444ab2a15f2e1f2ea0bf291cc3f932 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1883,6 +1884,7 @@ public class PurpurWorldConfig { +@@ -1887,6 +1888,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/0089-Flying-squids-Oh-my.patch b/patches/server/0089-Flying-squids-Oh-my.patch index 7162e5318..0e93cedcd 100644 --- a/patches/server/0089-Flying-squids-Oh-my.patch +++ b/patches/server/0089-Flying-squids-Oh-my.patch @@ -58,7 +58,7 @@ index 2b84322a622454c58c6481abbb13031a2e5c488f..8ed02b9737c47a19aa6a38789c19947e float g = Mth.cos(f) * 0.2F; float h = -0.1F + this.squid.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 60444ab2a15f2e1f2ea0bf291cc3f932c3f1dcdc..658978a0087c15a54259143704ee608d88807250 100644 +index 3e4a32fa6a029b851029eccb0a25680bbb467c3b..96531ad5f79ef90df7141ecb831a04b98db00da8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -921,10 +921,12 @@ public class PurpurWorldConfig { @@ -74,7 +74,7 @@ index 60444ab2a15f2e1f2ea0bf291cc3f932c3f1dcdc..658978a0087c15a54259143704ee608d } public boolean goatRidable = false; -@@ -1556,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1560,6 +1562,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 60444ab2a15f2e1f2ea0bf291cc3f932c3f1dcdc..658978a0087c15a54259143704ee608d private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1567,6 +1570,7 @@ public class PurpurWorldConfig { +@@ -1571,6 +1574,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/0096-Make-entity-breeding-times-configurable.patch b/patches/server/0096-Make-entity-breeding-times-configurable.patch index 646c483b3..7656cc46d 100644 --- a/patches/server/0096-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0096-Make-entity-breeding-times-configurable.patch @@ -538,7 +538,7 @@ index 373bf138f8b77413e6c29724e01572f64e0bc005..d43e26af79be5078124d8013167f452b public boolean canBeLeashed() { return true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f00239a52 100644 +index 915990fded424c7dd85cae72a3216c3636e3ec5a..c21e0ca1e57cd409ee1e871dd98553d77c914afb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -493,20 +493,24 @@ public class PurpurWorldConfig { @@ -879,7 +879,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean shulkerRidable = false; -@@ -1578,11 +1622,13 @@ public class PurpurWorldConfig { +@@ -1582,11 +1626,13 @@ public class PurpurWorldConfig { public boolean snifferRidableInWater = true; public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; @@ -893,7 +893,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean squidRidable = false; -@@ -1641,6 +1687,7 @@ public class PurpurWorldConfig { +@@ -1645,6 +1691,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -901,7 +901,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1651,6 +1698,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1702,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -909,7 +909,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean tadpoleRidable = false; -@@ -1671,6 +1719,7 @@ public class PurpurWorldConfig { +@@ -1675,6 +1723,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -917,7 +917,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1688,6 +1737,7 @@ public class PurpurWorldConfig { +@@ -1692,6 +1741,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); @@ -925,7 +925,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean tropicalFishRidable = false; -@@ -1708,6 +1758,7 @@ public class PurpurWorldConfig { +@@ -1712,6 +1762,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = true; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -933,7 +933,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1718,6 +1769,7 @@ public class PurpurWorldConfig { +@@ -1722,6 +1773,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -941,7 +941,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean vexRidable = false; -@@ -1745,6 +1797,7 @@ public class PurpurWorldConfig { +@@ -1749,6 +1801,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -949,7 +949,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1758,6 +1811,7 @@ public class PurpurWorldConfig { +@@ -1762,6 +1815,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); @@ -957,7 +957,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f } public boolean vindicatorRidable = false; -@@ -1869,6 +1923,7 @@ public class PurpurWorldConfig { +@@ -1873,6 +1927,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -965,7 +965,7 @@ index b63d7a198cea09970aae77d3e7ab44695a9f2e2d..a7f60a530528cfbbefb618c5d787261f private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1879,6 +1934,7 @@ public class PurpurWorldConfig { +@@ -1883,6 +1938,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0103-Snow-Golem-rate-of-fire-config.patch b/patches/server/0103-Snow-Golem-rate-of-fire-config.patch index ed70568d9..7189ea078 100644 --- a/patches/server/0103-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0103-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index 0060414b1d5afde56372ce121e9d37a1668cd03b..ee4d4a4fe314ee9bce69c96dd65d84ed 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 b1dbb9c7b5c04725ad3529e5af1cc9f75f6ef1d5..927ebe3515d61e0030849d701a08e702318b7759 100644 +index 53fb0bd1fb6c63f0580769243e645f38786aef28..dac1d00e6c79bd2fcf57d950f9e528b7d4ff8542 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1621,6 +1621,10 @@ public class PurpurWorldConfig { +@@ -1625,6 +1625,10 @@ public class PurpurWorldConfig { public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index b1dbb9c7b5c04725ad3529e5af1cc9f75f6ef1d5..927ebe3515d61e0030849d701a08e702 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1633,6 +1637,10 @@ public class PurpurWorldConfig { +@@ -1637,6 +1641,10 @@ public class PurpurWorldConfig { } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0105-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0105-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index c47cf652d..583aed3ce 100644 --- a/patches/server/0105-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0105-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -174,10 +174,10 @@ index 8734ab1bd8299bbf43906d81a349c2a13e0981a7..3ca83269311cbc18c9ef3ce62cff6a2d "farmer", PoiTypes.FARMER, diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 927ebe3515d61e0030849d701a08e702318b7759..5ad2f0ccf9f90d94d8c07ab30751689397943a98 100644 +index dac1d00e6c79bd2fcf57d950f9e528b7d4ff8542..9b17ce3ca2d7345a7c455f75d38e0eae1d0a7c78 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1823,6 +1823,8 @@ public class PurpurWorldConfig { +@@ -1827,6 +1827,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -186,7 +186,7 @@ index 927ebe3515d61e0030849d701a08e702318b7759..5ad2f0ccf9f90d94d8c07ab307516893 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1837,6 +1839,8 @@ public class PurpurWorldConfig { +@@ -1841,6 +1843,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/0106-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0106-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 0683968a1..cfacd286f 100644 --- a/patches/server/0106-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0106-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 0dcf5638e12c7670e6a5e577210e2542de1fd38b..47419219d4f435a17344361f4a60d5aa } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5ad2f0ccf9f90d94d8c07ab30751689397943a98..ef775f10d537b75d369e724614f875370d64a0fe 100644 +index 9b17ce3ca2d7345a7c455f75d38e0eae1d0a7c78..c9d6c2cdc603c2b24c5afb9fbf741c35cf72a175 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2069,6 +2069,7 @@ public class PurpurWorldConfig { +@@ -2073,6 +2073,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 5ad2f0ccf9f90d94d8c07ab30751689397943a98..ef775f10d537b75d369e724614f87537 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2083,5 +2084,6 @@ public class PurpurWorldConfig { +@@ -2087,5 +2088,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/0107-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0107-Configurable-chance-for-wolves-to-spawn-rabid.patch index 206272278..64f229bbe 100644 --- a/patches/server/0107-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0107-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -182,10 +182,10 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ef775f10d537b75d369e724614f875370d64a0fe..31d82c183607aff9b3642881b6a1463de341410d 100644 +index c9d6c2cdc603c2b24c5afb9fbf741c35cf72a175..209201b2789af1326616b52ffb14d64b253ebac9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1952,6 +1952,8 @@ public class PurpurWorldConfig { +@@ -1956,6 +1956,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -194,7 +194,7 @@ index ef775f10d537b75d369e724614f875370d64a0fe..31d82c183607aff9b3642881b6a1463d public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1963,6 +1965,8 @@ public class PurpurWorldConfig { +@@ -1967,6 +1969,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0108-Configurable-default-collar-color.patch b/patches/server/0108-Configurable-default-collar-color.patch index b5907f75a..e38e133ef 100644 --- a/patches/server/0108-Configurable-default-collar-color.patch +++ b/patches/server/0108-Configurable-default-collar-color.patch @@ -43,7 +43,7 @@ index 04d7e4bc6cc1deda5f53f6ae5f46d2402e0d0c10..5dd146d318851ce581a0d7841bd87ae9 protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 31d82c183607aff9b3642881b6a1463de341410d..7dabd7a3e68aa56f4557b45143a72d7c667dd023 100644 +index 209201b2789af1326616b52ffb14d64b253ebac9..6a92afa085bd2929f41de21da6e4e6d693a4f602 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -636,6 +636,7 @@ public class PurpurWorldConfig { @@ -66,7 +66,7 @@ index 31d82c183607aff9b3642881b6a1463de341410d..7dabd7a3e68aa56f4557b45143a72d7c } public boolean caveSpiderRidable = false; -@@ -1952,6 +1958,7 @@ public class PurpurWorldConfig { +@@ -1956,6 +1962,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 31d82c183607aff9b3642881b6a1463de341410d..7dabd7a3e68aa56f4557b45143a72d7c public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1965,6 +1972,11 @@ public class PurpurWorldConfig { +@@ -1969,6 +1976,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0112-Striders-give-saddle-back.patch b/patches/server/0112-Striders-give-saddle-back.patch index 4e9879658..af0b6fc89 100644 --- a/patches/server/0112-Striders-give-saddle-back.patch +++ b/patches/server/0112-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index 0a297368678cafb92eb0374d1d410271c0d10033..13d40773ff8272ca081e852d4ae3dc09 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 9b6c63beb9bf3e170a8d16f357d0985aa2c56fad..a9579bd890f95485665592a64470c6ff5b6d0ab5 100644 +index 2967f4028654908cdb6f80c2bef982028d3a81be..5604e457aad8782642d1c793c23a5ac54431304e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1726,6 +1726,7 @@ public class PurpurWorldConfig { +@@ -1730,6 +1730,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 9b6c63beb9bf3e170a8d16f357d0985aa2c56fad..a9579bd890f95485665592a64470c6ff private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1737,6 +1738,7 @@ public class PurpurWorldConfig { +@@ -1741,6 +1742,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/0115-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0115-Add-mobGriefing-bypass-to-everything-affected.patch index 9a5a089e0..2d357e486 100644 --- a/patches/server/0115-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0115-Add-mobGriefing-bypass-to-everything-affected.patch @@ -221,10 +221,10 @@ index ebbfd1fec85f1d4e099f02c91f3d7346b6bb3c7b..86704fcba15cec26eef3f77167aee911 AABB axisalignedbb = this.getBoundingBox().inflate(0.2D); Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 75f82922260b2c0666021e7ed42dfde401e1a9d6..a175144d5480b7af091787c6ab366fb3e8d70587 100644 +index 9d5d71135b00eb0ab1b1dfaf7925e13b8a44d22c..dee89c6e5b4750ebefb3888485a2bc099a81ce58 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -191,7 +191,7 @@ public class Silverfish extends Monster { +@@ -193,7 +193,7 @@ public class Silverfish extends Monster { continue; } // CraftBukkit end @@ -233,7 +233,7 @@ index 75f82922260b2c0666021e7ed42dfde401e1a9d6..a175144d5480b7af091787c6ab366fb3 world.destroyBlock(blockposition1, true, this.silverfish); } else { world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3); -@@ -229,7 +229,7 @@ public class Silverfish extends Monster { +@@ -231,7 +231,7 @@ public class Silverfish extends Monster { } else { RandomSource randomsource = this.mob.getRandom(); @@ -375,7 +375,7 @@ index c7377d04ceac3ea624117439783a443c6d6f6d08..0c732cfbd9ce50198a3f85ae8ef2263d } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9ad411f2d 100644 +index 555ba78408b10368a997dad12cdf578d3e4306fc..abcbf373c1c1061203c5b482d60dadb0146419aa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -114,8 +114,11 @@ public class PurpurWorldConfig { @@ -598,23 +598,23 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 } public boolean shulkerRidable = false; -@@ -1564,6 +1599,7 @@ public class PurpurWorldConfig { - public boolean silverfishRidableInWater = true; - public boolean silverfishControllable = true; +@@ -1566,6 +1601,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; + public double silverfishMovementSpeed = 0.25D; + public double silverfishAttackDamage = 1.0D; + public boolean silverfishBypassMobGriefing = false; private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1574,6 +1610,7 @@ public class PurpurWorldConfig { - set("mobs.silverfish.attributes.max_health", oldValue); - } +@@ -1578,6 +1614,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); + silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed); + silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage); + silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); } public boolean skeletonRidable = false; -@@ -1651,6 +1688,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1692,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -622,7 +622,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1667,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1671,6 +1709,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -630,7 +630,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 } public boolean snifferRidable = false; -@@ -1853,6 +1892,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1896,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -638,7 +638,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1869,6 +1909,7 @@ public class PurpurWorldConfig { +@@ -1873,6 +1913,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); @@ -646,7 +646,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 } public boolean vindicatorRidable = false; -@@ -1941,6 +1982,7 @@ public class PurpurWorldConfig { +@@ -1945,6 +1986,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -654,7 +654,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1958,6 +2000,7 @@ public class PurpurWorldConfig { +@@ -1962,6 +2004,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); @@ -662,7 +662,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 } public boolean witherSkeletonRidable = false; -@@ -2029,6 +2072,7 @@ public class PurpurWorldConfig { +@@ -2033,6 +2076,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -670,7 +670,7 @@ index 70b1c8041d4fabb73b41bed97f150b6444688c30..e183f7f2e513c5b79997db783df6d3f9 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2044,6 +2088,7 @@ public class PurpurWorldConfig { +@@ -2048,6 +2092,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/0121-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0121-Toggle-for-water-sensitive-mob-damage.patch index 311422a4f..ee4b77e0b 100644 --- a/patches/server/0121-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0121-Toggle-for-water-sensitive-mob-damage.patch @@ -887,11 +887,11 @@ index 123f8418544468d5c8d0d280f7dd44ebd25339d7..ff6a91caa9bd7fa90d71a2014354c675 protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index a175144d5480b7af091787c6ab366fb3e8d70587..18172d30a7a03d0bdef02878261639c0655f9475 100644 +index dee89c6e5b4750ebefb3888485a2bc099a81ce58..ea03af5cf7233352bee97a1d3d07dbdf5aebc6ef 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -65,6 +65,11 @@ public class Silverfish extends Monster { - this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.silverfishMaxHealth); +@@ -67,6 +67,11 @@ public class Silverfish extends Monster { + this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.silverfishAttackDamage); } + @Override @@ -1199,7 +1199,7 @@ index 0d5e828a7fb6fd6facc04a27175541ac463c918e..05c63eb6cf8a7067105c58d244c7cc27 protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d442602abc5226 100644 +index 52f7c69475390c46c10395af593b5ed9365c409c..33b3f83ae000581a42cbcecd569c426e1f3559af 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -572,11 +572,13 @@ public class PurpurWorldConfig { @@ -1950,17 +1950,17 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean silverfishRidable = false; -@@ -1618,6 +1714,7 @@ public class PurpurWorldConfig { - public boolean silverfishControllable = true; - public double silverfishMaxHealth = 8.0D; +@@ -1620,6 +1716,7 @@ public class PurpurWorldConfig { + public double silverfishMovementSpeed = 0.25D; + public double silverfishAttackDamage = 1.0D; public boolean silverfishBypassMobGriefing = false; + public boolean silverfishTakeDamageFromWater = false; private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1629,12 +1726,14 @@ public class PurpurWorldConfig { - } - silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); +@@ -1633,12 +1730,14 @@ public class PurpurWorldConfig { + silverfishMovementSpeed = getDouble("mobs.silverfish.attributes.movement_speed", silverfishMovementSpeed); + silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); + silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); } @@ -1973,7 +1973,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1645,6 +1744,7 @@ public class PurpurWorldConfig { +@@ -1649,6 +1748,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1981,7 +1981,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean skeletonHorseRidable = false; -@@ -1656,6 +1756,7 @@ public class PurpurWorldConfig { +@@ -1660,6 +1760,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1989,7 +1989,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void skeletonHorseSettings() { skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); -@@ -1672,6 +1773,7 @@ public class PurpurWorldConfig { +@@ -1676,6 +1777,7 @@ public class PurpurWorldConfig { skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); @@ -1997,7 +1997,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean slimeRidable = false; -@@ -1681,6 +1783,7 @@ public class PurpurWorldConfig { +@@ -1685,6 +1787,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2005,7 +2005,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1694,6 +1797,7 @@ public class PurpurWorldConfig { +@@ -1698,6 +1801,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2013,7 +2013,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean snowGolemRidable = false; -@@ -1707,6 +1811,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1815,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2021,7 +2021,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1724,6 +1829,7 @@ public class PurpurWorldConfig { +@@ -1728,6 +1833,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -2029,7 +2029,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean snifferRidable = false; -@@ -1745,6 +1851,7 @@ public class PurpurWorldConfig { +@@ -1749,6 +1855,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2037,7 +2037,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1757,12 +1864,14 @@ public class PurpurWorldConfig { +@@ -1761,12 +1868,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); @@ -2052,7 +2052,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1773,12 +1882,14 @@ public class PurpurWorldConfig { +@@ -1777,12 +1886,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2067,7 +2067,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1789,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1793,6 +1904,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2075,7 +2075,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean striderRidable = false; -@@ -1797,6 +1909,7 @@ public class PurpurWorldConfig { +@@ -1801,6 +1913,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2083,7 +2083,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1809,6 +1922,7 @@ public class PurpurWorldConfig { +@@ -1813,6 +1926,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); @@ -2091,7 +2091,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean tadpoleRidable = false; -@@ -1830,6 +1944,7 @@ public class PurpurWorldConfig { +@@ -1834,6 +1948,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2099,7 +2099,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1848,11 +1963,13 @@ public class PurpurWorldConfig { +@@ -1852,11 +1967,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); @@ -2113,7 +2113,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1862,6 +1979,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1983,7 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); @@ -2121,7 +2121,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean turtleRidable = false; -@@ -1869,6 +1987,7 @@ public class PurpurWorldConfig { +@@ -1873,6 +1991,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2129,7 +2129,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1880,6 +1999,7 @@ public class PurpurWorldConfig { +@@ -1884,6 +2003,7 @@ public class PurpurWorldConfig { } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); @@ -2137,7 +2137,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean vexRidable = false; -@@ -1887,6 +2007,7 @@ public class PurpurWorldConfig { +@@ -1891,6 +2011,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2145,7 +2145,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1898,6 +2019,7 @@ public class PurpurWorldConfig { +@@ -1902,6 +2023,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2153,7 +2153,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean villagerRidable = false; -@@ -1911,6 +2033,7 @@ public class PurpurWorldConfig { +@@ -1915,6 +2037,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2161,7 +2161,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1928,6 +2051,7 @@ public class PurpurWorldConfig { +@@ -1932,6 +2055,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); @@ -2169,7 +2169,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean vindicatorRidable = false; -@@ -1935,6 +2059,7 @@ public class PurpurWorldConfig { +@@ -1939,6 +2063,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2177,7 +2177,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1946,6 +2071,7 @@ public class PurpurWorldConfig { +@@ -1950,6 +2075,7 @@ public class PurpurWorldConfig { } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); @@ -2185,7 +2185,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean wanderingTraderRidable = false; -@@ -1954,6 +2080,7 @@ public class PurpurWorldConfig { +@@ -1958,6 +2084,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2193,7 +2193,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1966,6 +2093,7 @@ public class PurpurWorldConfig { +@@ -1970,6 +2097,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); @@ -2201,7 +2201,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean wardenRidable = false; -@@ -1981,6 +2109,7 @@ public class PurpurWorldConfig { +@@ -1985,6 +2113,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = true; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2209,7 +2209,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1991,6 +2120,7 @@ public class PurpurWorldConfig { +@@ -1995,6 +2124,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2217,7 +2217,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean witherRidable = false; -@@ -2001,6 +2131,7 @@ public class PurpurWorldConfig { +@@ -2005,6 +2135,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2225,7 +2225,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2019,12 +2150,14 @@ public class PurpurWorldConfig { +@@ -2023,12 +2154,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); @@ -2240,7 +2240,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2035,6 +2168,7 @@ public class PurpurWorldConfig { +@@ -2039,6 +2172,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); @@ -2248,7 +2248,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean wolfRidable = false; -@@ -2045,6 +2179,7 @@ public class PurpurWorldConfig { +@@ -2049,6 +2183,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2256,7 +2256,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2063,12 +2198,14 @@ public class PurpurWorldConfig { +@@ -2067,12 +2202,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); @@ -2271,7 +2271,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2079,6 +2216,7 @@ public class PurpurWorldConfig { +@@ -2083,6 +2220,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2279,7 +2279,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean zombieRidable = false; -@@ -2091,6 +2229,7 @@ public class PurpurWorldConfig { +@@ -2095,6 +2233,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2287,7 +2287,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2107,6 +2246,7 @@ public class PurpurWorldConfig { +@@ -2111,6 +2250,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); @@ -2295,7 +2295,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean zombieHorseRidable = false; -@@ -2119,6 +2259,7 @@ public class PurpurWorldConfig { +@@ -2123,6 +2263,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2303,7 +2303,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -2136,6 +2277,7 @@ public class PurpurWorldConfig { +@@ -2140,6 +2281,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); @@ -2311,7 +2311,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean zombieVillagerRidable = false; -@@ -2146,6 +2288,7 @@ public class PurpurWorldConfig { +@@ -2150,6 +2292,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2319,7 +2319,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2160,6 +2303,7 @@ public class PurpurWorldConfig { +@@ -2164,6 +2307,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); @@ -2327,7 +2327,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 } public boolean zombifiedPiglinRidable = false; -@@ -2171,6 +2315,7 @@ public class PurpurWorldConfig { +@@ -2175,6 +2319,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2335,7 +2335,7 @@ index 57e00aabe89a8f03994bd6923dccf75e082a9031..71d34560516a1953167d2ad787d44260 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2186,5 +2331,6 @@ public class PurpurWorldConfig { +@@ -2190,5 +2335,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/0124-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0124-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index eeb416a76..c84cbae60 100644 --- a/patches/server/0124-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0124-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,7 +29,7 @@ index 73d5027234cca5a9d0dfd60f455fe67ba5174558..ab0ed16663ac72924d2a4f139705e551 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1751dc86fbb1192f516e02d10d9fc8b735744d0f..227066a721c215d0a635ab2303e6a034d82c8da8 100644 +index 37aeac3bc5f88a8309f3bb29b9089fe479c8e1f2..55d21c94030ee946924512fe56d739c3cd30977a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -962,6 +962,7 @@ public class PurpurWorldConfig { @@ -48,7 +48,7 @@ index 1751dc86fbb1192f516e02d10d9fc8b735744d0f..227066a721c215d0a635ab2303e6a034 } public boolean endermanRidable = false; -@@ -2171,6 +2173,7 @@ public class PurpurWorldConfig { +@@ -2175,6 +2177,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 1751dc86fbb1192f516e02d10d9fc8b735744d0f..227066a721c215d0a635ab2303e6a034 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2190,6 +2193,7 @@ public class PurpurWorldConfig { +@@ -2194,6 +2197,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/0138-Add-config-for-villager-trading.patch b/patches/server/0138-Add-config-for-villager-trading.patch index bd368d04b..fffafba00 100644 --- a/patches/server/0138-Add-config-for-villager-trading.patch +++ b/patches/server/0138-Add-config-for-villager-trading.patch @@ -32,10 +32,10 @@ index 05c63eb6cf8a7067105c58d244c7cc27d6bf1125..7c2d5d28f8c2aba2cd8255a4aef22247 return InteractionResult.sidedSuccess(this.level().isClientSide); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 52ac15501519a85f71690889182b47d867bb4714..8c8ae2059c91e75a60063383f320c38e98b0c37b 100644 +index 1c23f10f6644685c9fb25a12aa9ad81769e0070a..e8e741f2492a3326139295ee02d8b89c54c8f047 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2138,6 +2138,7 @@ public class PurpurWorldConfig { +@@ -2142,6 +2142,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 52ac15501519a85f71690889182b47d867bb4714..8c8ae2059c91e75a60063383f320c38e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2156,6 +2157,7 @@ public class PurpurWorldConfig { +@@ -2160,6 +2161,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); @@ -51,7 +51,7 @@ index 52ac15501519a85f71690889182b47d867bb4714..8c8ae2059c91e75a60063383f320c38e } public boolean vindicatorRidable = false; -@@ -2185,6 +2187,7 @@ public class PurpurWorldConfig { +@@ -2189,6 +2191,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -59,7 +59,7 @@ index 52ac15501519a85f71690889182b47d867bb4714..8c8ae2059c91e75a60063383f320c38e private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2198,6 +2201,7 @@ public class PurpurWorldConfig { +@@ -2202,6 +2205,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/0150-Config-for-wither-explosion-radius.patch b/patches/server/0150-Config-for-wither-explosion-radius.patch index f80735cb7..6f4eab2e9 100644 --- a/patches/server/0150-Config-for-wither-explosion-radius.patch +++ b/patches/server/0150-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index e472df057d087fe46bd40b798c050ed6e38a283c..999453409c19abf7f5b5c2dc39969985 if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 44e81b1da9414acbb15f1bf3a16d6702bb549a8e..9dc4524ce6ae3ef8dade80a7ddbfa462d6f88d9b 100644 +index 1f978f260309dec952ea52c01761d5d2dd64abed..f860fb01bca916b164e40c35309627c57438c387 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2305,6 +2305,7 @@ public class PurpurWorldConfig { +@@ -2309,6 +2309,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index 44e81b1da9414acbb15f1bf3a16d6702bb549a8e..9dc4524ce6ae3ef8dade80a7ddbfa462 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2325,6 +2326,7 @@ public class PurpurWorldConfig { +@@ -2329,6 +2330,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/0175-Configurable-hunger-starvation-damage.patch b/patches/server/0175-Configurable-hunger-starvation-damage.patch index 10b3c1a92..9072e8954 100644 --- a/patches/server/0175-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0175-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 515dd3b769917c4aa60ce180ef24f38ca12e6848..c7ad716f607afe382436d088a2b2e622 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 36b51a71b18a033af6054ecb3bb8102c2f3dc7f7..853793856eb7944b4194eec5247cd13bc50b6bc3 100644 +index 5b3d93b56b9b6875da10662b96e5b03e7e474c17..c34772892113e379d8151043144b9ee4bf51a2e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2581,4 +2581,9 @@ public class PurpurWorldConfig { +@@ -2585,4 +2585,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/0189-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0189-Customizeable-Zombie-Villager-curing-times.patch index a11a2f2d8..56402861f 100644 --- a/patches/server/0189-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0189-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index 3c4cff3f095cdf2dd74df7bf4bb8f3d5600b342d..9bb75b49ea2d0bd8aafbe537b65f86eb return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c0633e1df4eed679638c027d8b899705ac0bf2f5..465d47e7feced83e08a9508d469e2de351e6afd1 100644 +index 502f5de0962d4df475dedea43efac138fa1e0b95..8aade2de37d75a3248f4c63f9a8e4bb625603207 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2842,6 +2842,8 @@ public class PurpurWorldConfig { +@@ -2846,6 +2846,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index c0633e1df4eed679638c027d8b899705ac0bf2f5..465d47e7feced83e08a9508d469e2de3 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2857,6 +2859,8 @@ public class PurpurWorldConfig { +@@ -2861,6 +2863,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/0191-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0191-Toggle-for-Wither-s-spawn-sound.patch index fea40b10c..4465a6e75 100644 --- a/patches/server/0191-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0191-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index 15c9321763ad9f3bb31d7a05cb7ed9cb64e9a8a4..c37c27eec9d0b293063fc8841ac85810 // this.level().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 4f96968c9878001104a2704fc799e6a1d81f20d4..6a303055543ee5942bd80f032b39c5fd60f7c2ce 100644 +index d8505c34bb168e8e6014ddaab0b90586843a00a8..6f49dd403cfbb81ceb4276a269893704c65f78b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2687,6 +2687,7 @@ public class PurpurWorldConfig { +@@ -2691,6 +2691,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index 4f96968c9878001104a2704fc799e6a1d81f20d4..6a303055543ee5942bd80f032b39c5fd private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2708,6 +2709,7 @@ public class PurpurWorldConfig { +@@ -2712,6 +2713,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/0194-Conduit-behavior-configuration.patch b/patches/server/0194-Conduit-behavior-configuration.patch index 3b84358d6..4efdec3a3 100644 --- a/patches/server/0194-Conduit-behavior-configuration.patch +++ b/patches/server/0194-Conduit-behavior-configuration.patch @@ -97,10 +97,10 @@ index c1759aeb3e6ad0e4eb66cba3da1b120dd1dce812..1a91bc2e422db0eba65694ac046f1b36 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a7c50e1ca69c834209c6fc8e586d35f246bec731..13d40005684b33c7dd15a94bff5e5ff62da4a228 100644 +index 6071cadaef868f6dbf9c49c6e3c2f2559a83cb4d..095fb6a1780b95b8d55c911ac663da0d72c30d72 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2908,4 +2908,27 @@ public class PurpurWorldConfig { +@@ -2912,4 +2912,27 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0195-Cauldron-fill-chances.patch b/patches/server/0195-Cauldron-fill-chances.patch index f045f7f2c..d41d3d81f 100644 --- a/patches/server/0195-Cauldron-fill-chances.patch +++ b/patches/server/0195-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index a2bd54dae4b0460d200f6d5300194a7ef5a28830..bf189a171530abfc9bba5db5a305feb3 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 13d40005684b33c7dd15a94bff5e5ff62da4a228..7513119e68909267ab634705bb3d9923a22a41b4 100644 +index 095fb6a1780b95b8d55c911ac663da0d72c30d72..31c0c7952dedd8b7451943ec39eeb0acae114113 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2931,4 +2931,15 @@ public class PurpurWorldConfig { +@@ -2935,4 +2935,15 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0211-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0211-Add-option-to-disable-zombie-villagers-cure.patch index a2b58ca6f..57760acbb 100644 --- a/patches/server/0211-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0211-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index 9bb75b49ea2d0bd8aafbe537b65f86eb04f6cfe2..612907fe87e46b5b13ed80635f203fa9 if (!this.level().isClientSide) { this.startConverting(player.getUUID(), this.random.nextInt(level().purpurConfig.zombieVillagerCuringTimeMax - level().purpurConfig.zombieVillagerCuringTimeMin + 1) + level().purpurConfig.zombieVillagerCuringTimeMin); // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c7fdfbfdccb3acac1f6ad2fb6c660d810ca39d5c..3c2f3e5441da0dea12d6ff9746e0fe8935b7bc4f 100644 +index 0555c449dfd7138e3004d4597302ebb006c2f506..10ad786e7c0fe825168e88d634b9dc7165c6ab51 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2908,6 +2908,7 @@ public class PurpurWorldConfig { +@@ -2912,6 +2912,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index c7fdfbfdccb3acac1f6ad2fb6c660d810ca39d5c..3c2f3e5441da0dea12d6ff9746e0fe89 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2925,6 +2926,7 @@ public class PurpurWorldConfig { +@@ -2929,6 +2930,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/0215-Mobs-always-drop-experience.patch b/patches/server/0215-Mobs-always-drop-experience.patch index c229f103b..3cf3e6b69 100644 --- a/patches/server/0215-Mobs-always-drop-experience.patch +++ b/patches/server/0215-Mobs-always-drop-experience.patch @@ -853,10 +853,10 @@ index 0e9a4e473b1f1887804507cfadfdeeed645fa3d1..18fb2fd83a6b8234cca5d51e931582c3 protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 18172d30a7a03d0bdef02878261639c0655f9475..c713e0b9b90784ad5f043f3a06ef50b5a1769ed1 100644 +index ea03af5cf7233352bee97a1d3d07dbdf5aebc6ef..0e6fdb9dfba9795eb99b8d152e1cd3d0d551a1bd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -70,6 +70,11 @@ public class Silverfish extends Monster { +@@ -72,6 +72,11 @@ public class Silverfish extends Monster { return this.level().purpurConfig.silverfishTakeDamageFromWater; } @@ -1157,7 +1157,7 @@ index 6250bc28db4bbac0f101cdc93c90ec4d7ec6b2ba..d342752271c76b447bb8cde50d574072 protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd580fef6cd0 100644 +index b2c2665b9697a41747ec173f6d850746edbc6c00..47e6dbcb70f90fb882d061a2107ce2a296706eca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1111,12 +1111,14 @@ public class PurpurWorldConfig { @@ -1905,23 +1905,23 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean silverfishRidable = false; -@@ -2337,6 +2431,7 @@ public class PurpurWorldConfig { - public double silverfishMaxHealth = 8.0D; +@@ -2339,6 +2433,7 @@ public class PurpurWorldConfig { + public double silverfishAttackDamage = 1.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; + public boolean silverfishAlwaysDropExp = false; private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2349,6 +2444,7 @@ public class PurpurWorldConfig { - silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); +@@ -2353,6 +2448,7 @@ public class PurpurWorldConfig { + silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); + silverfishAlwaysDropExp = getBoolean("mobs.silverfish.always-drop-exp", silverfishAlwaysDropExp); } public boolean skeletonRidable = false; -@@ -2356,6 +2452,7 @@ public class PurpurWorldConfig { +@@ -2360,6 +2456,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2367,6 +2464,7 @@ public class PurpurWorldConfig { +@@ -2371,6 +2468,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean skeletonHorseRidable = false; -@@ -2379,6 +2477,7 @@ public class PurpurWorldConfig { +@@ -2383,6 +2481,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void skeletonHorseSettings() { skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); -@@ -2396,6 +2495,7 @@ public class PurpurWorldConfig { +@@ -2400,6 +2499,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean slimeRidable = false; -@@ -2406,6 +2506,7 @@ public class PurpurWorldConfig { +@@ -2410,6 +2510,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2420,6 +2521,7 @@ public class PurpurWorldConfig { +@@ -2424,6 +2525,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean snowGolemRidable = false; -@@ -2434,6 +2536,7 @@ public class PurpurWorldConfig { +@@ -2438,6 +2540,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2452,6 +2555,7 @@ public class PurpurWorldConfig { +@@ -2456,6 +2559,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean snifferRidable = false; -@@ -2474,6 +2578,7 @@ public class PurpurWorldConfig { +@@ -2478,6 +2582,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2487,6 +2592,7 @@ public class PurpurWorldConfig { +@@ -2491,6 +2596,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean spiderRidable = false; -@@ -2494,6 +2600,7 @@ public class PurpurWorldConfig { +@@ -2498,6 +2604,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2505,6 +2612,7 @@ public class PurpurWorldConfig { +@@ -2509,6 +2616,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean strayRidable = false; -@@ -2512,6 +2620,7 @@ public class PurpurWorldConfig { +@@ -2516,6 +2624,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2523,6 +2632,7 @@ public class PurpurWorldConfig { +@@ -2527,6 +2636,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean striderRidable = false; -@@ -2532,6 +2642,7 @@ public class PurpurWorldConfig { +@@ -2536,6 +2646,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2545,6 +2656,7 @@ public class PurpurWorldConfig { +@@ -2549,6 +2660,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean tadpoleRidable = false; -@@ -2567,6 +2679,7 @@ public class PurpurWorldConfig { +@@ -2571,6 +2683,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2586,12 +2699,14 @@ public class PurpurWorldConfig { +@@ -2590,12 +2703,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2602,6 +2717,7 @@ public class PurpurWorldConfig { +@@ -2606,6 +2721,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean turtleRidable = false; -@@ -2610,6 +2726,7 @@ public class PurpurWorldConfig { +@@ -2614,6 +2730,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2622,6 +2739,7 @@ public class PurpurWorldConfig { +@@ -2626,6 +2743,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean vexRidable = false; -@@ -2630,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2634,6 +2752,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2642,6 +2761,7 @@ public class PurpurWorldConfig { +@@ -2646,6 +2765,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean villagerRidable = false; -@@ -2657,6 +2777,7 @@ public class PurpurWorldConfig { +@@ -2661,6 +2781,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2676,6 +2797,7 @@ public class PurpurWorldConfig { +@@ -2680,6 +2801,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean vindicatorRidable = false; -@@ -2684,6 +2806,7 @@ public class PurpurWorldConfig { +@@ -2688,6 +2810,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2696,6 +2819,7 @@ public class PurpurWorldConfig { +@@ -2700,6 +2823,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean wanderingTraderRidable = false; -@@ -2706,6 +2830,7 @@ public class PurpurWorldConfig { +@@ -2710,6 +2834,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2720,6 +2845,7 @@ public class PurpurWorldConfig { +@@ -2724,6 +2849,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean wardenRidable = false; -@@ -2736,6 +2862,7 @@ public class PurpurWorldConfig { +@@ -2740,6 +2866,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2747,6 +2874,7 @@ public class PurpurWorldConfig { +@@ -2751,6 +2878,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean witherRidable = false; -@@ -2761,6 +2889,7 @@ public class PurpurWorldConfig { +@@ -2765,6 +2893,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2783,6 +2912,7 @@ public class PurpurWorldConfig { +@@ -2787,6 +2916,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean witherSkeletonRidable = false; -@@ -2790,6 +2920,7 @@ public class PurpurWorldConfig { +@@ -2794,6 +2924,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2801,6 +2932,7 @@ public class PurpurWorldConfig { +@@ -2805,6 +2936,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean wolfRidable = false; -@@ -2812,6 +2944,7 @@ public class PurpurWorldConfig { +@@ -2816,6 +2948,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2831,6 +2964,7 @@ public class PurpurWorldConfig { +@@ -2835,6 +2968,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean zoglinRidable = false; -@@ -2838,6 +2972,7 @@ public class PurpurWorldConfig { +@@ -2842,6 +2976,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2849,6 +2984,7 @@ public class PurpurWorldConfig { +@@ -2853,6 +2988,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean zombieRidable = false; -@@ -2862,6 +2998,7 @@ public class PurpurWorldConfig { +@@ -2866,6 +3002,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2879,6 +3016,7 @@ public class PurpurWorldConfig { +@@ -2883,6 +3020,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean zombieHorseRidable = false; -@@ -2892,6 +3030,7 @@ public class PurpurWorldConfig { +@@ -2896,6 +3034,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -2910,6 +3049,7 @@ public class PurpurWorldConfig { +@@ -2914,6 +3053,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean zombieVillagerRidable = false; -@@ -2924,6 +3064,7 @@ public class PurpurWorldConfig { +@@ -2928,6 +3068,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2942,6 +3083,7 @@ public class PurpurWorldConfig { +@@ -2946,6 +3087,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 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 } public boolean zombifiedPiglinRidable = false; -@@ -2954,6 +3096,7 @@ public class PurpurWorldConfig { +@@ -2958,6 +3100,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 5c70c1d9efd106a5d3e389edd017a14c52ab6b50..3e537be0ef13cf6ee2018bf9cb11bd58 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2970,6 +3113,7 @@ public class PurpurWorldConfig { +@@ -2974,6 +3117,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/0219-Mob-head-visibility-percent.patch b/patches/server/0219-Mob-head-visibility-percent.patch index c186c90f5..38a1c26fa 100644 --- a/patches/server/0219-Mob-head-visibility-percent.patch +++ b/patches/server/0219-Mob-head-visibility-percent.patch @@ -32,7 +32,7 @@ index 6b76ca326d08853a8a508ec22d7bc6cf370223dd..07068e5f93289534f10c0b876dbf884a // 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 0ef3bc0c256ab2ec99b85fcb26de8b2b0ece5c1f..b63b86e463710007234381f2a6189c359a5d5e92 100644 +index 2721414186082d357f58fa3779333e09c85ac092..961488a258103ddb77c5773bf7dbb66d9d97cbb7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1383,6 +1383,7 @@ public class PurpurWorldConfig { @@ -67,7 +67,7 @@ index 0ef3bc0c256ab2ec99b85fcb26de8b2b0ece5c1f..b63b86e463710007234381f2a6189c35 } public boolean piglinBruteRidable = false; -@@ -2459,6 +2463,7 @@ public class PurpurWorldConfig { +@@ -2463,6 +2467,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 0ef3bc0c256ab2ec99b85fcb26de8b2b0ece5c1f..b63b86e463710007234381f2a6189c35 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2471,6 +2476,7 @@ public class PurpurWorldConfig { +@@ -2475,6 +2480,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index 0ef3bc0c256ab2ec99b85fcb26de8b2b0ece5c1f..b63b86e463710007234381f2a6189c35 } public boolean skeletonHorseRidable = false; -@@ -3005,6 +3011,7 @@ public class PurpurWorldConfig { +@@ -3009,6 +3015,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 0ef3bc0c256ab2ec99b85fcb26de8b2b0ece5c1f..b63b86e463710007234381f2a6189c35 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -3023,6 +3030,7 @@ public class PurpurWorldConfig { +@@ -3027,6 +3034,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/0229-Configurable-minimum-demand-for-trades.patch b/patches/server/0229-Configurable-minimum-demand-for-trades.patch index 8fbc7f66f..f18e4867a 100644 --- a/patches/server/0229-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0229-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bbe5aac6d11ed14f99692c0e7280b7e4914e7e4e..816646ad26234f2a36eb8a36f6c2e79e03baa9ca 100644 +index a1888bfe78f915936242cdabfac432e84fee25ae..60a8d4668da016a74927555a602df6672fba5cee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2807,6 +2807,7 @@ public class PurpurWorldConfig { +@@ -2811,6 +2811,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index bbe5aac6d11ed14f99692c0e7280b7e4914e7e4e..816646ad26234f2a36eb8a36f6c2e79e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2827,6 +2828,7 @@ public class PurpurWorldConfig { +@@ -2831,6 +2832,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/0230-Lobotomize-stuck-villagers.patch b/patches/server/0230-Lobotomize-stuck-villagers.patch index 3f8ef0274..10a9fb247 100644 --- a/patches/server/0230-Lobotomize-stuck-villagers.patch +++ b/patches/server/0230-Lobotomize-stuck-villagers.patch @@ -104,10 +104,10 @@ index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 816646ad26234f2a36eb8a36f6c2e79e03baa9ca..b2a343441a80d62f4716e311d3808e2dfe801ef1 100644 +index 60a8d4668da016a74927555a602df6672fba5cee..144bd1e7f00e9261adacf4f15f208c02d42ca803 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2808,6 +2808,9 @@ public class PurpurWorldConfig { +@@ -2812,6 +2812,9 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -117,7 +117,7 @@ index 816646ad26234f2a36eb8a36f6c2e79e03baa9ca..b2a343441a80d62f4716e311d3808e2d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2829,6 +2832,18 @@ public class PurpurWorldConfig { +@@ -2833,6 +2836,18 @@ 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/0231-Option-for-villager-display-trade-item.patch b/patches/server/0231-Option-for-villager-display-trade-item.patch index f8a0057ea..f02a7bba2 100644 --- a/patches/server/0231-Option-for-villager-display-trade-item.patch +++ b/patches/server/0231-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c && this.lookTime > 0 && entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b2a343441a80d62f4716e311d3808e2dfe801ef1..fc0aba2d9d558674db4d37d8c355f7bcdfea48ff 100644 +index 144bd1e7f00e9261adacf4f15f208c02d42ca803..92415aff64c58b27d77427b6c127f60d313cbf8e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2811,6 +2811,7 @@ public class PurpurWorldConfig { +@@ -2815,6 +2815,7 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; @@ -28,7 +28,7 @@ index b2a343441a80d62f4716e311d3808e2dfe801ef1..fc0aba2d9d558674db4d37d8c355f7bc private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2844,6 +2845,7 @@ public class PurpurWorldConfig { +@@ -2848,6 +2849,7 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); diff --git a/patches/server/0238-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0238-Implement-configurable-search-radius-for-villagers-t.patch index 8ffcde983..10c706ab0 100644 --- a/patches/server/0238-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0238-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index 1f1d6fcdf89051761715f2422efe74e432a8d27a..2b55f05b727f862ea79ab2c200a756f6 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 91b054b158c574460ed2b6e8314556d8469fde9b..27d2b82fa5e5458d31229a96445bb05d63a93da1 100644 +index 3ac3ee9f7bb1c2ba4a56e6257316928ba0521000..e1a61abc78f2d291fa965bc2f1d9698655e4fbec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2822,6 +2822,8 @@ public class PurpurWorldConfig { +@@ -2826,6 +2826,8 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 91b054b158c574460ed2b6e8314556d8469fde9b..27d2b82fa5e5458d31229a96445bb05d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2856,6 +2858,8 @@ public class PurpurWorldConfig { +@@ -2860,6 +2862,8 @@ public class PurpurWorldConfig { villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0242-Skeletons-eat-wither-roses.patch b/patches/server/0242-Skeletons-eat-wither-roses.patch index 6dc5772fb..a76b157c9 100644 --- a/patches/server/0242-Skeletons-eat-wither-roses.patch +++ b/patches/server/0242-Skeletons-eat-wither-roses.patch @@ -90,10 +90,10 @@ index 3f81faffc1a54ab1148c410ef80964d9876e4b77..cb714f78ad73f709967d7449c411c5b1 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4ed3d03cfee38e98820cf6f6e83dd644482e2fac..2ff93723e4b35ef6315c29b6a3ea8899f1d629a1 100644 +index 0b5cb361811b5ae83259a9c53ee2bc3a5ebbdbb3..ebe416c174a4acab7d15cc0c1137ded23b4dd403 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2503,6 +2503,7 @@ public class PurpurWorldConfig { +@@ -2507,6 +2507,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -101,7 +101,7 @@ index 4ed3d03cfee38e98820cf6f6e83dd644482e2fac..2ff93723e4b35ef6315c29b6a3ea8899 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2516,6 +2517,7 @@ public class PurpurWorldConfig { +@@ -2520,6 +2521,7 @@ public class PurpurWorldConfig { skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); diff --git a/patches/server/0256-Add-skeleton-bow-accuracy-option.patch b/patches/server/0256-Add-skeleton-bow-accuracy-option.patch index 330748114..8e48a4adb 100644 --- a/patches/server/0256-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0256-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index 4aeb23de31e826d5cf27f8c91bd60c911f769a17..f9532a45419699585d1f20d27d5857a3 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0c97e7929d13333d18e8e017d7cf5b3525f66a75..5c5ecba9be89b94bf98eda74292eeb0dd41299c0 100644 +index d644c548c4a12180e55c561f3b2fed721fd35653..83b8a381b6bb46407ba6ad8ffa547474b6ea3a44 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2523,6 +2523,8 @@ public class PurpurWorldConfig { +@@ -2527,6 +2527,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 0c97e7929d13333d18e8e017d7cf5b3525f66a75..5c5ecba9be89b94bf98eda74292eeb0d private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2537,6 +2539,18 @@ public class PurpurWorldConfig { +@@ -2541,6 +2543,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0280-Shears-can-defuse-TNT.patch b/patches/server/0280-Shears-can-defuse-TNT.patch index 0f808e1cc..e70d04ed1 100644 --- a/patches/server/0280-Shears-can-defuse-TNT.patch +++ b/patches/server/0280-Shears-can-defuse-TNT.patch @@ -42,10 +42,10 @@ index 42bd2d9a1528b6210e4dfb56233062fd97c9743b..2a4425d04917b32c7ae5af3e7422c0ba + // Purpur end - Shears can defuse TNT } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 38e46e0e83749d1889ae9eef22f2386c354b08c1..52d6171cd6ae831a5dae404a98b08e1e16deff6e 100644 +index e8c428c656f37de9ec5be1264e9ba3b3e75617be..145305f77a41338940b6fff5e4fcd66be73d287a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3292,4 +3292,11 @@ public class PurpurWorldConfig { +@@ -3296,4 +3296,11 @@ public class PurpurWorldConfig { cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance); cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance); } diff --git a/patches/server/0288-Configurable-villager-search-radius.patch b/patches/server/0288-Configurable-villager-search-radius.patch index 8efea0586..d432c68d9 100644 --- a/patches/server/0288-Configurable-villager-search-radius.patch +++ b/patches/server/0288-Configurable-villager-search-radius.patch @@ -31,10 +31,10 @@ index d5a549f08b98c80a5cf0eef02cb8a389c32dfecb..222c87e80cb089867ce9a7d2dceebe21 .collect(Collectors.toSet()); Path path = AcquirePoi.findPathToPois(entity, set); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 23cb825a5730f3a65ac299c6e1d4307b400e1ab7..352a1f1c56174424c2418e926dfeee136a94c687 100644 +index 62ac1c51b48291d9d47f19fa318be9d6a8bb3b4c..f4a7c9bfcb6e470a8284916bf498fa24fcd5cb1d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2906,6 +2906,8 @@ public class PurpurWorldConfig { +@@ -2910,6 +2910,8 @@ public class PurpurWorldConfig { public boolean villagerDisplayTradeItem = true; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -43,7 +43,7 @@ index 23cb825a5730f3a65ac299c6e1d4307b400e1ab7..352a1f1c56174424c2418e926dfeee13 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2942,6 +2944,8 @@ public class PurpurWorldConfig { +@@ -2946,6 +2948,8 @@ public class PurpurWorldConfig { villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);