Fix villagers not spawning when the follow-emerald-blocks option is enabled (#1611)

This commit is contained in:
Nebojsa Majic
2024-11-24 20:55:08 +01:00
committed by GitHub
parent 959c29dc97
commit 68c1612c3f
42 changed files with 278 additions and 228 deletions

View File

@@ -4,6 +4,19 @@ Date: Fri, 29 Nov 2019 22:10:12 -0600
Subject: [PATCH] Villagers follow emerald blocks
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
index 157fe8979c780300b6f72cbaa17729031e3b386d..0bb08af954d224a2b4404615bee720ac4bdbac55 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
@@ -161,7 +161,7 @@ public class DefaultAttributes {
.put(EntityType.VILLAGER, Villager.createAttributes().build())
.put(EntityType.VINDICATOR, Vindicator.createAttributes().build())
.put(EntityType.WARDEN, Warden.createAttributes().build())
- .put(EntityType.WANDERING_TRADER, Mob.createMobAttributes().build())
+ .put(EntityType.WANDERING_TRADER, net.minecraft.world.entity.npc.WanderingTrader.createAttributes().build()) // Purpur
.put(EntityType.WITCH, Witch.createAttributes().build())
.put(EntityType.WITHER, WitherBoss.createAttributes().build())
.put(EntityType.WITHER_SKELETON, AbstractSkeleton.createAttributes().build())
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java
index 84ab90dd1fe693da71732533ccff940c1007e1b6..179fdf7b7f68db610925a9d7b88879289b1b98b8 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java
@@ -30,22 +43,55 @@ index 5f656fc726a1dc5f42657095a2f2b7cf85b92d7c..6c74cf1dea99b3b967b8c3d76f405f82
// CraftBukkit start
@Override
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 37c26008486ffdf7f1d6bdfd0253067a1c6bf942..448f3cacd0c599eb1841b31b1c3bfc60ba3da7d3 100644
index 37c26008486ffdf7f1d6bdfd0253067a1c6bf942..aad307477e687db1a7868cca6674b1226dfd5035 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -154,6 +154,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getNavigation().setRequiredPathLength(48.0F);
this.setCanPickUpLoot(true);
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
@@ -175,6 +175,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
+ if (level().purpurConfig.villagerFollowEmeraldBlock) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.TemptGoal(this, 1.0D, TEMPT_ITEMS, false));
}
// Purpur end
// Purpur start
@@ -182,6 +183,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
+ this.getAttribute(Attributes.TEMPT_RANGE).setBaseValue(this.level().purpurConfig.villagerTemptRange); // Purpur
}
@Override
@@ -245,7 +247,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public static AttributeSupplier.Builder createAttributes() {
- return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.5D);
+ return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.5D).add(Attributes.TEMPT_RANGE, 10.0D); // Purpur - add TEMPT_RANGE
}
public boolean assignProfessionWhenSpawned() {
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index f741aca818bc983b034b3ac9864c1d71c714f9b4..c8f6a6fd0d954346e8651b83e05063e09b53f7f9 100644
index f741aca818bc983b034b3ac9864c1d71c714f9b4..a821a7bc7de7458ceb8afdb61bde32f74534f012 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -114,6 +114,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -92,8 +92,15 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@Override
public void initAttributes() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.TEMPT_RANGE).setBaseValue(this.level().purpurConfig.wanderingTraderTemptRange); // Purpur
}
+ // Purpur start
+ public static net.minecraft.world.entity.ai.attributes.AttributeSupplier.Builder createAttributes() {
+ return Mob.createMobAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.TEMPT_RANGE, 10.0D);
+ }
+ // Purpur end
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
@@ -114,6 +121,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
this.goalSelector.addGoal(1, new PanicGoal(this, 0.5D));
this.goalSelector.addGoal(1, new LookAtTradingPlayerGoal(this));
this.goalSelector.addGoal(2, new WanderingTrader.WanderToPositionGoal(this, 2.0D, 0.35D));
@@ -54,38 +100,42 @@ index f741aca818bc983b034b3ac9864c1d71c714f9b4..c8f6a6fd0d954346e8651b83e05063e0
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 df21a5f89b1c659bc0dfea8f42362ef09b368d81..228ad3c9186d7128430be0edcd4447b168206721 100644
index df21a5f89b1c659bc0dfea8f42362ef09b368d81..a36fd98b7acaa8bf9107f5f1a7091437eb2ea829 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1575,6 +1575,7 @@ public class PurpurWorldConfig {
@@ -1575,6 +1575,8 @@ public class PurpurWorldConfig {
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
public double villagerScale = 1.0D;
+ public boolean villagerFollowEmeraldBlock = false;
+ public double villagerTemptRange = 10.0D;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1586,6 +1587,7 @@ public class PurpurWorldConfig {
@@ -1586,6 +1588,8 @@ public class PurpurWorldConfig {
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
+ villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
+ villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
}
public boolean vindicatorRidable = false;
@@ -1611,6 +1613,7 @@ public class PurpurWorldConfig {
@@ -1611,6 +1615,8 @@ public class PurpurWorldConfig {
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
public double wanderingTraderScale = 1.0D;
+ public boolean wanderingTraderFollowEmeraldBlock = false;
+ public double wanderingTraderTemptRange = 10.0D;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1622,6 +1625,7 @@ public class PurpurWorldConfig {
@@ -1622,6 +1628,8 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
+ wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
+ wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
}
public boolean wardenRidable = false;

View File

@@ -17,12 +17,12 @@ index 1e639ab3e48d884ee6e2c33be85dde51e24183b6..75b0a66be9f94c82a02f714860ae8bee
// Paper start - Expand EntityUnleashEvent
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 448f3cacd0c599eb1841b31b1c3bfc60ba3da7d3..9008eeae3187024862bef886801d197c4c425df3 100644
index aad307477e687db1a7868cca6674b1226dfd5035..329db0049e0792b2c066349849ebd7c26a9178d7 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -177,6 +177,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
if (level().purpurConfig.villagerFollowEmeraldBlock) this.goalSelector.addGoal(3, new net.minecraft.world.entity.ai.goal.TemptGoal(this, 1.0D, TEMPT_ITEMS, false));
}
+
+ @Override
@@ -33,7 +33,7 @@ index 448f3cacd0c599eb1841b31b1c3bfc60ba3da7d3..9008eeae3187024862bef886801d197c
@Override
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index c8f6a6fd0d954346e8651b83e05063e09b53f7f9..7b8b5a7b1fea50c7b238afc4b3d79746da08b641 100644
index a821a7bc7de7458ceb8afdb61bde32f74534f012..738df68a988a8ba428bf2c74a12cb8d9dd525bee 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -87,6 +87,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -49,37 +49,37 @@ index c8f6a6fd0d954346e8651b83e05063e09b53f7f9..7b8b5a7b1fea50c7b238afc4b3d79746
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 228ad3c9186d7128430be0edcd4447b168206721..21c2b19f40f43ec78ff891c6333d8773f84ec85b 100644
index a36fd98b7acaa8bf9107f5f1a7091437eb2ea829..daf3b319422d22cb33a945033aa45e55a0f4e116 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1576,6 +1576,7 @@ public class PurpurWorldConfig {
public double villagerMaxHealth = 20.0D;
@@ -1577,6 +1577,7 @@ public class PurpurWorldConfig {
public double villagerScale = 1.0D;
public boolean villagerFollowEmeraldBlock = false;
public double villagerTemptRange = 10.0D;
+ public boolean villagerCanBeLeashed = false;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1588,6 +1589,7 @@ public class PurpurWorldConfig {
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
@@ -1590,6 +1591,7 @@ public class PurpurWorldConfig {
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
+ villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
}
public boolean vindicatorRidable = false;
@@ -1614,6 +1616,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
@@ -1617,6 +1619,7 @@ public class PurpurWorldConfig {
public double wanderingTraderScale = 1.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
public double wanderingTraderTemptRange = 10.0D;
+ public boolean wanderingTraderCanBeLeashed = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1626,6 +1629,7 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
@@ -1630,6 +1633,7 @@ public class PurpurWorldConfig {
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
+ wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
}

View File

@@ -167,7 +167,7 @@ index ba1ce7e0ed888bd47312e9d7da5426f5c1015d07..650f9e1ca3a5ddec5123133c9604f331
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 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a7038f8901a 100644
index 17cac265378429f1cdcc9d183cc5588660c7f92e..3f6288eff7f38e17115916521f17fa53b520ae01 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -636,6 +636,9 @@ public class PurpurWorldConfig {
@@ -210,7 +210,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
}
public boolean illusionerRidable = false;
@@ -1824,6 +1836,9 @@ public class PurpurWorldConfig {
@@ -1828,6 +1840,9 @@ public class PurpurWorldConfig {
public double zombieMaxHealth = 20.0D;
public double zombieScale = 1.0D;
public double zombieSpawnReinforcements = 0.1D;
@@ -220,7 +220,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1836,6 +1851,9 @@ public class PurpurWorldConfig {
@@ -1840,6 +1855,9 @@ public class PurpurWorldConfig {
zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
zombieScale = Mth.clamp(getDouble("mobs.zombie.attributes.scale", zombieScale), 0.0625D, 16.0D);
zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
@@ -230,7 +230,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
}
public boolean zombieHorseRidable = false;
@@ -1873,6 +1891,9 @@ public class PurpurWorldConfig {
@@ -1877,6 +1895,9 @@ public class PurpurWorldConfig {
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerScale = 1.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
@@ -240,7 +240,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1885,6 +1906,9 @@ public class PurpurWorldConfig {
@@ -1889,6 +1910,9 @@ public class PurpurWorldConfig {
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerScale = Mth.clamp(getDouble("mobs.zombie_villager.attributes.scale", zombieVillagerScale), 0.0625D, 16.0D);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@@ -250,7 +250,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
}
public boolean zombifiedPiglinRidable = false;
@@ -1893,6 +1917,9 @@ public class PurpurWorldConfig {
@@ -1897,6 +1921,9 @@ public class PurpurWorldConfig {
public double zombifiedPiglinMaxHealth = 20.0D;
public double zombifiedPiglinScale = 1.0D;
public double zombifiedPiglinSpawnReinforcements = 0.0D;
@@ -260,7 +260,7 @@ index 0766f4cb00caac477e7ee0d537dc1f5304cd7d1a..7c1f903c41839251a69d38ba58fb4a70
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1905,5 +1932,8 @@ public class PurpurWorldConfig {
@@ -1909,5 +1936,8 @@ public class PurpurWorldConfig {
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinScale = Mth.clamp(getDouble("mobs.zombified_piglin.attributes.scale", zombifiedPiglinScale), 0.0625D, 16.0D);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 9008eeae3187024862bef886801d197c4c425df3..62a1d6876ce75676c5fa381e48bc58b8ef92701b 100644
index 329db0049e0792b2c066349849ebd7c26a9178d7..c50cfa8225d5098f978da42cdf6c6860e93e9f2a 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -761,7 +761,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -762,7 +762,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public boolean canBreed() {
@@ -18,20 +18,20 @@ index 9008eeae3187024862bef886801d197c4c425df3..62a1d6876ce75676c5fa381e48bc58b8
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index feddf1aeb817e5bf3fbde76943c36da6bd4c1133..436f04b56ac6795e393008e4eeae4fc09cd2e2a9 100644
index 296285cd96f0b1a96216608474c78ef5333ae110..1510a14f18851c6906a0ae9249f0fbf8b0edc750 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1745,6 +1745,7 @@ public class PurpurWorldConfig {
public double villagerScale = 1.0D;
@@ -1746,6 +1746,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public double villagerTemptRange = 10.0D;
public boolean villagerCanBeLeashed = false;
+ public boolean villagerCanBreed = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1758,6 +1759,7 @@ public class PurpurWorldConfig {
villagerScale = Mth.clamp(getDouble("mobs.villager.attributes.scale", villagerScale), 0.0625D, 16.0D);
@@ -1760,6 +1761,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
+ villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
}

View File

@@ -21,10 +21,10 @@ index 2bfce82bee8f3a16a33bd937eb610d9df1b6ceeb..2f7da09e14787395e95211acadd5c693
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 575d9dd236287ce26a1c080df2d05fa27849845e..4ea6246187a94e596800f0c26c604c5bfb644823 100644
index ff2c7696bc1988d40a3db83e8071d767615a5bd0..e462e34f33adaba50af7b0ff60356e1153f6f4ac 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1774,6 +1774,7 @@ public class PurpurWorldConfig {
@@ -1776,6 +1776,7 @@ public class PurpurWorldConfig {
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
public double vindicatorScale = 1.0D;
@@ -32,7 +32,7 @@ index 575d9dd236287ce26a1c080df2d05fa27849845e..4ea6246187a94e596800f0c26c604c5b
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1785,6 +1786,7 @@ public class PurpurWorldConfig {
@@ -1787,6 +1788,7 @@ public class PurpurWorldConfig {
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D);

View File

@@ -54,7 +54,7 @@ index 6cf6d4ec7b9e43c7b2b4c0e2fb080964ff588130..e74866e5195a5eeae7666ad7be750eda
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f57bdfe69273a62dda9839b1725625aa969b2b78..3fb03b012873999e2ff82b480908655303e47aaf 100644
index 32c8a0bd5aa71676dcabebe7395be381722accb9..ff41df1aefb9c0062af302251e97fad101a7cef3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1598,6 +1598,7 @@ public class PurpurWorldConfig {

View File

@@ -27,7 +27,7 @@ index ea9d118f99a62004db8fc093ff67794a1ec99ac9..2add41657b8f868bcd4755ca843e457b
public boolean canTeleport(Level from, Level to) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3fb03b012873999e2ff82b480908655303e47aaf..b901f058f82033fe1750bfc4fb472c80268f1920 100644
index ff41df1aefb9c0062af302251e97fad101a7cef3..478756e5e1f5e2fe4878715687d7d6e7d4b10128 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -101,12 +101,14 @@ public class PurpurWorldConfig {

View File

@@ -23,10 +23,10 @@ index f55842cf85dec8e5c26cd5ac52c63599f3b19cf3..2ec12ec298446b556132785d4d376130
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 b901f058f82033fe1750bfc4fb472c80268f1920..26e89ab042792a627efdb5a8cee5c5972bba80ef 100644
index ba1bf7fe6ffe74b832a0d247a82f510b02597a12..9698423ff57ff7aac8d7e222230059c5984afc59 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1859,6 +1859,8 @@ public class PurpurWorldConfig {
@@ -1863,6 +1863,8 @@ public class PurpurWorldConfig {
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
public double witherScale = 1.0D;
@@ -35,7 +35,7 @@ index b901f058f82033fe1750bfc4fb472c80268f1920..26e89ab042792a627efdb5a8cee5c597
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1875,6 +1877,8 @@ public class PurpurWorldConfig {
@@ -1879,6 +1881,8 @@ public class PurpurWorldConfig {
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);

View File

@@ -70,10 +70,10 @@ index cb5cf34781de4e87074a70a447fd463280147bdc..e6fb53b828c1a2e76d398e88449260f6
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 2d34c9dc0f1bbd2b6c56ed80f088b604793b9a2a..3c185f89b6f90720620f1fa93e13da60a944613e 100644
index f47fff5e410eaba7113a795dd362057ea091c172..337aabd13f1062a351e19a55212313002cc51a87 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1967,6 +1967,7 @@ public class PurpurWorldConfig {
@@ -1971,6 +1971,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -81,7 +81,7 @@ index 2d34c9dc0f1bbd2b6c56ed80f088b604793b9a2a..3c185f89b6f90720620f1fa93e13da60
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1982,6 +1983,7 @@ public class PurpurWorldConfig {
@@ -1986,6 +1987,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);

View File

@@ -75,7 +75,7 @@ index d49e26a1b719ff4dae6a3a10fc3695c39f400465..7b4b70abd82f669b8ecfa4c8d486ccd7
public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) {
Iterator iterator = this.customSpawners.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b78f6b3e8b70a10f260c233be93947ac27e9edbd..c895c2e2bbdcc0cbdd69b2086e2d2d76a105f225 100644
index ef3decbb19f0d17701c7be7b4da09de1f8f910f0..f1961a6bc50bdc2b00c8245de621b3302c6359b7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -119,6 +119,13 @@ public class PurpurWorldConfig {

View File

@@ -140,7 +140,7 @@ index 355965d88d5ef008111cc72f39e4f8d35741fdfd..0024345d1906e6fb6bbdb189f6d4dbc6
this.partner.resetLove();
worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index 2382b82d3d4c09e50e62dd353b4a1149ec9169b4..f3873e0ad6ca1f547450e44bba917241bbc80c20 100644
index c7039d7d5e38392fef8787f6e245a44842e2f2a3..3397fa689c6e36981f3944586c2059c8eb7b1e50 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -87,6 +87,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -252,7 +252,7 @@ index b0cdc25f6592d44a3ad3fdf4d461e95887105257..629a0729cae629dea89fdf491afa9eed
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index bc975266fbf0348723dc04e29fd6bf8231b9cb87..a20fec03c2ee5019450825be119a017cfe0e4722 100644
index 38799a817742b1bbaf921f1e24cf2fc44ab52050..8d94e1a33ac7748ded0f75212738ba13bd18d492 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -114,6 +114,11 @@ public class Sheep extends Animal implements Shearable {
@@ -284,7 +284,7 @@ index 500676a78aedc525aca989ccd0380cd2cc1a711b..6b2e27e2f8aeccfc4d84c73be0fa5a04
this.entityData.set(Turtle.HOME_POS, pos);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index d082ca3ed17e8bbb27c1a971259720d43246b47f..bbdc5eb28c2be570866070d2d055a97721f46d94 100644
index 40a766e20d1a2111d561cc05aa49e2ac50187d19..bb2e5e97d33ffaf95a6c88b3c077de1a89a60c6e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -152,6 +152,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -538,7 +538,7 @@ index 08c4a32b1195820eb574cdf4a499107565a551d6..0220fb517d99e8c9629d191eb554799a
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 7895ad54e7c22cb25edb45d7ce38e87306673578..295db9e5854f0a936832046f8ad436f722e8cacf 100644
index 62791c5dc87b1c392db4eaf2359c6625e1bff8e5..ffe18a49ecceee710843d9f32688adc808cf6477 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -463,23 +463,27 @@ public class PurpurWorldConfig {
@@ -948,23 +948,23 @@ index 7895ad54e7c22cb25edb45d7ce38e87306673578..295db9e5854f0a936832046f8ad436f7
}
public boolean vexRidable = false;
@@ -1827,6 +1879,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
@@ -1828,6 +1880,7 @@ public class PurpurWorldConfig {
public double villagerTemptRange = 10.0D;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
+ public int villagerBreedingTicks = 6000;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1841,6 +1894,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
@@ -1843,6 +1896,7 @@ public class PurpurWorldConfig {
villagerTemptRange = getDouble("mobs.villager.attributes.tempt_range", villagerTemptRange);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
+ villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
}
public boolean vindicatorRidable = false;
@@ -1963,6 +2017,7 @@ public class PurpurWorldConfig {
@@ -1967,6 +2021,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -972,7 +972,7 @@ index 7895ad54e7c22cb25edb45d7ce38e87306673578..295db9e5854f0a936832046f8ad436f7
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1974,6 +2029,7 @@ public class PurpurWorldConfig {
@@ -1978,6 +2033,7 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -136,10 +136,10 @@ index a0e0692d17760f440fe81d52887284c787e562db..ab9bebc07b5228dbc0d3ba4b0f7d1bbe
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
} else {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 62a1d6876ce75676c5fa381e48bc58b8ef92701b..666ab4c3c957db48783d8b891737370c3ced881c 100644
index c50cfa8225d5098f978da42cdf6c6860e93e9f2a..55472c14eec2c3c08a42af865ae044a5a0a115d3 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -224,7 +224,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -225,7 +225,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F));
} else {
brain.setSchedule(Schedule.VILLAGER_DEFAULT);
@@ -148,7 +148,7 @@ index 62a1d6876ce75676c5fa381e48bc58b8ef92701b..666ab4c3c957db48783d8b891737370c
}
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
@@ -940,6 +940,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -941,6 +941,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public boolean hasFarmSeeds() {
return this.getInventory().hasAnyMatching((itemstack) -> {
@@ -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 60c89f3e4cbf5b02479dacd21ebe61ef41bc3478..5e1da3824ef5e8dc9333f2248fde1548f496abc1 100644
index b1f596596407a3b448d3e02fc929fca64644e6e2..35341a19536fbc1456e7a81d6d768a2d7abfae9c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1906,6 +1906,8 @@ public class PurpurWorldConfig {
@@ -1907,6 +1907,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -186,7 +186,7 @@ index 60c89f3e4cbf5b02479dacd21ebe61ef41bc3478..5e1da3824ef5e8dc9333f2248fde1548
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1921,6 +1923,8 @@ public class PurpurWorldConfig {
@@ -1923,6 +1925,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);

View File

@@ -35,10 +35,10 @@ index 650f9e1ca3a5ddec5123133c9604f33140e948a8..cb47b15d197b1167dcbac1b989903bbf
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5e1da3824ef5e8dc9333f2248fde1548f496abc1..1433d56c0830b0b91bac87df0ac400977ee3a24f 100644
index 35341a19536fbc1456e7a81d6d768a2d7abfae9c..a68eacc7e5c6a16e4c7f3ab084c097b02294616e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2172,6 +2172,7 @@ public class PurpurWorldConfig {
@@ -2176,6 +2176,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 5e1da3824ef5e8dc9333f2248fde1548f496abc1..1433d56c0830b0b91bac87df0ac40097
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2187,5 +2188,6 @@ public class PurpurWorldConfig {
@@ -2191,5 +2192,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);

View File

@@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid.
Rabid wolves attack all players, mobs, and animals.
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index bbdc5eb28c2be570866070d2d055a97721f46d94..37687335041ae47725c6931e2c7d54c192e2de36 100644
index bb2e5e97d33ffaf95a6c88b3c077de1a89a60c6e..34ca92be146bec3d2f6e46f473c3e68b0a97b168 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -103,6 +103,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -182,10 +182,10 @@ index ecd33b4add46acbe4e4f8879c0601220423d66ca..1506a8c0fa490726eb4a4ae14f3aa194
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1433d56c0830b0b91bac87df0ac400977ee3a24f..f6a47daaf8f03d9f0cfc8a49e242e8c1dffe62f8 100644
index a68eacc7e5c6a16e4c7f3ab084c097b02294616e..c39156bd01e030b06ce1eff68808a97f0371a02c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2047,6 +2047,8 @@ public class PurpurWorldConfig {
@@ -2051,6 +2051,8 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -194,7 +194,7 @@ index 1433d56c0830b0b91bac87df0ac400977ee3a24f..f6a47daaf8f03d9f0cfc8a49e242e8c1
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -2059,6 +2061,8 @@ public class PurpurWorldConfig {
@@ -2063,6 +2065,8 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -26,7 +26,7 @@ index f79146925e99da08492e7b445006be003a56f340..8a89ea47d79065e85bb831578c6a1ab7
@Override
public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 37687335041ae47725c6931e2c7d54c192e2de36..7343c5a81ddf7db1e9e434796489fd8a98b9a70c 100644
index 34ca92be146bec3d2f6e46f473c3e68b0a97b168..89566a88a98af2e4ec2b062ed12d4828a32b576d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -212,6 +212,12 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -43,7 +43,7 @@ index 37687335041ae47725c6931e2c7d54c192e2de36..7343c5a81ddf7db1e9e434796489fd8a
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 f6a47daaf8f03d9f0cfc8a49e242e8c1dffe62f8..57a5631a139251ae23592c10b082ab738f5cbb0b 100644
index c39156bd01e030b06ce1eff68808a97f0371a02c..434310452cb21a83fc6ed03047fc3ac1f897bf46 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -619,6 +619,7 @@ public class PurpurWorldConfig {
@@ -66,7 +66,7 @@ index f6a47daaf8f03d9f0cfc8a49e242e8c1dffe62f8..57a5631a139251ae23592c10b082ab73
}
public boolean caveSpiderRidable = false;
@@ -2047,6 +2053,7 @@ public class PurpurWorldConfig {
@@ -2051,6 +2057,7 @@ public class PurpurWorldConfig {
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
public double wolfScale = 1.0D;
@@ -74,7 +74,7 @@ index f6a47daaf8f03d9f0cfc8a49e242e8c1dffe62f8..57a5631a139251ae23592c10b082ab73
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2061,6 +2068,11 @@ public class PurpurWorldConfig {
@@ -2065,6 +2072,11 @@ public class PurpurWorldConfig {
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
wolfScale = Mth.clamp(getDouble("mobs.wolf.attributes.scale", wolfScale), 0.0625D, 16.0D);

View File

@@ -376,7 +376,7 @@ index bae4931fff0db56aa125248e17b29f7c2557221f..4eb0f7a9cf6b12c02d0bd42980ae302d
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7ccf7721df8 100644
index 44db4f1f86758535300cb88941aa466990f55f92..fbbf7153606fc3ccad12ca4a164436ee17184288 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,9 @@ public class PurpurWorldConfig {
@@ -628,7 +628,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
}
public boolean snifferRidable = false;
@@ -1936,6 +1975,7 @@ public class PurpurWorldConfig {
@@ -1937,6 +1976,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -636,7 +636,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1953,6 +1993,7 @@ public class PurpurWorldConfig {
@@ -1955,6 +1995,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);
@@ -644,7 +644,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
}
public boolean vindicatorRidable = false;
@@ -2032,6 +2073,7 @@ public class PurpurWorldConfig {
@@ -2036,6 +2077,7 @@ public class PurpurWorldConfig {
public double witherScale = 1.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -652,7 +652,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2050,6 +2092,7 @@ public class PurpurWorldConfig {
@@ -2054,6 +2096,7 @@ public class PurpurWorldConfig {
witherScale = Mth.clamp(getDouble("mobs.wither.attributes.scale", witherScale), 0.0625D, 16.0D);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -660,7 +660,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
}
public boolean witherSkeletonRidable = false;
@@ -2128,6 +2171,7 @@ public class PurpurWorldConfig {
@@ -2132,6 +2175,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -668,7 +668,7 @@ index afd52da926501e8a99b7d889e8fdbb8c5d20f5cc..9b0bdd1d70f7c50e81d273612919e7cc
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2144,6 +2188,7 @@ public class PurpurWorldConfig {
@@ -2148,6 +2192,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);

View File

@@ -66,7 +66,7 @@ index 12ff824ffa81ea45f76337ec2b6d80b01047b698..c954cb3255145e18e8ab1e5a1b0267b8
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2431777ccdf0e2aa0f8488e13da3f64baa079c11..c51747bf291561359b028500652e556f677a0aa0 100644
index d77285976271ebd60892646e3050d947a2becc69..0e6c36fafdf5f12d80340daf1c967f9700ec4ad7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -100,10 +100,16 @@ public class PurpurWorldConfig {

View File

@@ -39,7 +39,7 @@ index 9d8c26a59b23e8c3cf82168b3716280cfb380f43..d61840da8edad607b6bb3e0b6e168417
} else {
this.portalProcess = new PortalProcessor(portal, pos.immutable());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c51747bf291561359b028500652e556f677a0aa0..0347b0d83a9824a355bdcaaaf36f98fd6828effd 100644
index 0e6c36fafdf5f12d80340daf1c967f9700ec4ad7..2a0a5cd3952db6e519c3d9cda3310eb06f347451 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -327,6 +327,7 @@ public class PurpurWorldConfig {

View File

@@ -174,7 +174,7 @@ index 500109364b4741fc310eb22c151754a153db027e..6396d31a14815fbe4f9f51dc610af317
protected void registerGoals() {
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index f3873e0ad6ca1f547450e44bba917241bbc80c20..9682f0b26456f3db005a4996123c6b9e2dfa19ef 100644
index 3397fa689c6e36981f3944586c2059c8eb7b1e50..9d85342439977d3ac72ef133733df4f57a68714a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -92,6 +92,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -318,7 +318,7 @@ index 9ec3479b0db1f42493db127081e341fa5acc8e41..486709c9701657c7aa93586f539c18e4
public int getMaxSchoolSize() {
return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index a20fec03c2ee5019450825be119a017cfe0e4722..3ec09aadd13ad769740b0c5a289435203d671471 100644
index 8d94e1a33ac7748ded0f75212738ba13bd18d492..3f54b38a3182b116b80ef9ba53c160b343da855a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -119,6 +119,11 @@ public class Sheep extends Animal implements Shearable {
@@ -395,7 +395,7 @@ index 6b2e27e2f8aeccfc4d84c73be0fa5a04f5a962e2..96a6f13fe6ea02412974fd4c8cf01546
this.entityData.set(Turtle.HOME_POS, pos);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 7343c5a81ddf7db1e9e434796489fd8a98b9a70c..91474a8a795a278493c07002bd99ec75effa659c 100644
index 89566a88a98af2e4ec2b062ed12d4828a32b576d..6e3ed974f6e55aed8ae83fc90e8ae8a7ee2bb8a8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -218,6 +218,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -1167,11 +1167,11 @@ index 6459e588e6feb6d7bcf999e36b658bbad4069af2..9c196b0cf49cb6f69bd17748fd13ce59
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 666ab4c3c957db48783d8b891737370c3ced881c..3fce5c42ca000250bb25201939ba6c73170486be 100644
index 55472c14eec2c3c08a42af865ae044a5a0a115d3..35622b60a6b98251080fec444b335ecf617a4cce 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -190,6 +190,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
@@ -191,6 +191,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getAttribute(Attributes.TEMPT_RANGE).setBaseValue(this.level().purpurConfig.villagerTemptRange); // Purpur
}
+ @Override
@@ -1183,12 +1183,12 @@ index 666ab4c3c957db48783d8b891737370c3ced881c..3fce5c42ca000250bb25201939ba6c73
public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 7b8b5a7b1fea50c7b238afc4b3d79746da08b641..5eac0ba67b3ab258dd594ad1e1aaa7a2535fcfca 100644
index 738df68a988a8ba428bf2c74a12cb8d9dd525bee..116f47c7342dade1eaf0fabc62fb0ba2edd4c578 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -99,6 +99,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
@@ -106,6 +106,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
}
// Purpur end
+ @Override
+ public boolean isSensitiveToWater() {
@@ -1199,7 +1199,7 @@ index 7b8b5a7b1fea50c7b238afc4b3d79746da08b641..5eac0ba67b3ab258dd594ad1e1aaa7a2
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 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11587a4dbf 100644
index a749f64a2b98025bbbc5f3b6b784a29557acda8c..b54607f98cd348ced9f7c27f9e8f7bd955ec836f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -549,12 +549,14 @@ public class PurpurWorldConfig {
@@ -2170,7 +2170,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean villagerRidable = false;
@@ -1998,6 +2120,7 @@ public class PurpurWorldConfig {
@@ -1999,6 +2121,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
@@ -2178,7 +2178,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2016,6 +2139,7 @@ public class PurpurWorldConfig {
@@ -2018,6 +2141,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);
@@ -2186,7 +2186,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean vindicatorRidable = false;
@@ -2024,6 +2148,7 @@ public class PurpurWorldConfig {
@@ -2026,6 +2150,7 @@ public class PurpurWorldConfig {
public double vindicatorMaxHealth = 24.0D;
public double vindicatorScale = 1.0D;
public double vindicatorJohnnySpawnChance = 0D;
@@ -2194,7 +2194,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2036,6 +2161,7 @@ public class PurpurWorldConfig {
@@ -2038,6 +2163,7 @@ public class PurpurWorldConfig {
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);
vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
@@ -2202,23 +2202,23 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean wanderingTraderRidable = false;
@@ -2045,6 +2171,7 @@ public class PurpurWorldConfig {
public double wanderingTraderScale = 1.0D;
@@ -2048,6 +2174,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public double wanderingTraderTemptRange = 10.0D;
public boolean wanderingTraderCanBeLeashed = false;
+ public boolean wanderingTraderTakeDamageFromWater = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2058,6 +2185,7 @@ public class PurpurWorldConfig {
wanderingTraderScale = Mth.clamp(getDouble("mobs.wandering_trader.attributes.scale", wanderingTraderScale), 0.0625D, 16.0D);
@@ -2062,6 +2189,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
+ wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);
}
public boolean wardenRidable = false;
@@ -2074,6 +2202,7 @@ public class PurpurWorldConfig {
@@ -2078,6 +2206,7 @@ public class PurpurWorldConfig {
public boolean witchControllable = true;
public double witchMaxHealth = 26.0D;
public double witchScale = 1.0D;
@@ -2226,7 +2226,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2085,6 +2214,7 @@ public class PurpurWorldConfig {
@@ -2089,6 +2218,7 @@ public class PurpurWorldConfig {
}
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchScale = Mth.clamp(getDouble("mobs.witch.attributes.scale", witchScale), 0.0625D, 16.0D);
@@ -2234,7 +2234,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean witherRidable = false;
@@ -2096,6 +2226,7 @@ public class PurpurWorldConfig {
@@ -2100,6 +2230,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
@@ -2242,7 +2242,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2115,6 +2246,7 @@ public class PurpurWorldConfig {
@@ -2119,6 +2250,7 @@ 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);
@@ -2250,7 +2250,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean witherSkeletonRidable = false;
@@ -2122,6 +2254,7 @@ public class PurpurWorldConfig {
@@ -2126,6 +2258,7 @@ public class PurpurWorldConfig {
public boolean witherSkeletonControllable = true;
public double witherSkeletonMaxHealth = 20.0D;
public double witherSkeletonScale = 1.0D;
@@ -2258,7 +2258,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2133,6 +2266,7 @@ public class PurpurWorldConfig {
@@ -2137,6 +2270,7 @@ public class PurpurWorldConfig {
}
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonScale = Mth.clamp(getDouble("mobs.wither_skeleton.attributes.scale", witherSkeletonScale), 0.0625D, 16.0D);
@@ -2266,7 +2266,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean wolfRidable = false;
@@ -2144,6 +2278,7 @@ public class PurpurWorldConfig {
@@ -2148,6 +2282,7 @@ public class PurpurWorldConfig {
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -2274,7 +2274,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2163,6 +2298,7 @@ public class PurpurWorldConfig {
@@ -2167,6 +2302,7 @@ 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);
@@ -2282,7 +2282,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean zoglinRidable = false;
@@ -2170,6 +2306,7 @@ public class PurpurWorldConfig {
@@ -2174,6 +2310,7 @@ public class PurpurWorldConfig {
public boolean zoglinControllable = true;
public double zoglinMaxHealth = 40.0D;
public double zoglinScale = 1.0D;
@@ -2290,7 +2290,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2181,6 +2318,7 @@ public class PurpurWorldConfig {
@@ -2185,6 +2322,7 @@ public class PurpurWorldConfig {
}
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinScale = Mth.clamp(getDouble("mobs.zoglin.attributes.scale", zoglinScale), 0.0625D, 16.0D);
@@ -2298,7 +2298,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean zombieRidable = false;
@@ -2194,6 +2332,7 @@ public class PurpurWorldConfig {
@@ -2198,6 +2336,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
@@ -2306,7 +2306,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2211,6 +2350,7 @@ public class PurpurWorldConfig {
@@ -2215,6 +2354,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);
@@ -2314,7 +2314,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean zombieHorseRidable = false;
@@ -2223,6 +2363,7 @@ public class PurpurWorldConfig {
@@ -2227,6 +2367,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
@@ -2322,7 +2322,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void zombieHorseSettings() {
zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable);
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
@@ -2240,6 +2381,7 @@ public class PurpurWorldConfig {
@@ -2244,6 +2385,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);
@@ -2330,7 +2330,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean zombieVillagerRidable = false;
@@ -2251,6 +2393,7 @@ public class PurpurWorldConfig {
@@ -2255,6 +2397,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
@@ -2338,7 +2338,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2266,6 +2409,7 @@ public class PurpurWorldConfig {
@@ -2270,6 +2413,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);
@@ -2346,7 +2346,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
}
public boolean zombifiedPiglinRidable = false;
@@ -2278,6 +2422,7 @@ public class PurpurWorldConfig {
@@ -2282,6 +2426,7 @@ public class PurpurWorldConfig {
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
@@ -2354,7 +2354,7 @@ index 0347b0d83a9824a355bdcaaaf36f98fd6828effd..dbb6f3eb9b36fe47d04cdee51b829f11
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2294,5 +2439,6 @@ public class PurpurWorldConfig {
@@ -2298,5 +2443,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);

View File

@@ -29,7 +29,7 @@ index 1f9d7c85f2ee5f6653e11457e19c03e6fa0419d9..8ecb72f6cd12d1e12f5ae9b240ccd6d9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d4ba95503b26274c768eca9a4c740b9a36387916..f63907aa140ba2c38c8804b49a9e4539d59d1a8f 100644
index a4a913b089a4867cbfe6786f1eaa9682dde9ca98..12c74e91648779ec12d1ffd31ce2da478b970640 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -966,6 +966,7 @@ public class PurpurWorldConfig {
@@ -48,7 +48,7 @@ index d4ba95503b26274c768eca9a4c740b9a36387916..f63907aa140ba2c38c8804b49a9e4539
}
public boolean endermanRidable = false;
@@ -2266,6 +2268,7 @@ public class PurpurWorldConfig {
@@ -2270,6 +2272,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index d4ba95503b26274c768eca9a4c740b9a36387916..f63907aa140ba2c38c8804b49a9e4539
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2286,6 +2289,7 @@ public class PurpurWorldConfig {
@@ -2290,6 +2293,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);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 3fce5c42ca000250bb25201939ba6c73170486be..3b17133289f95e5420f1c0a73b34b953470df533 100644
index 35622b60a6b98251080fec444b335ecf617a4cce..039187f2f8ad4f889b25ce27d1253e4f53d51163 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -369,6 +369,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -370,6 +370,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
if (level().purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
@@ -17,10 +17,10 @@ index 3fce5c42ca000250bb25201939ba6c73170486be..3b17133289f95e5420f1c0a73b34b953
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 5eac0ba67b3ab258dd594ad1e1aaa7a2535fcfca..485a49bb13532177a949938d4b99c934518a0af1 100644
index 116f47c7342dade1eaf0fabc62fb0ba2edd4c578..ba7856973d22c031910df4ec2a84d101c540198c 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -156,8 +156,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -163,8 +163,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return tryRide(player, hand, InteractionResult.CONSUME); // Purpur
}
if (level().purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
@@ -32,10 +32,10 @@ index 5eac0ba67b3ab258dd594ad1e1aaa7a2535fcfca..485a49bb13532177a949938d4b99c934
return InteractionResult.SUCCESS;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5d8cf9c7e7171642a383f2033f5ef540aaef726e..8f09c1e1c803b3e9e7c77aa63fd78a6b3b3cc93d 100644
index 5e7636ba4ff1dec83567c21ece380d593cf0fbf6..961b4e5348abe34a333f842defd00b707a8227bc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2222,6 +2222,7 @@ public class PurpurWorldConfig {
@@ -2223,6 +2223,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index 5d8cf9c7e7171642a383f2033f5ef540aaef726e..8f09c1e1c803b3e9e7c77aa63fd78a6b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2241,6 +2242,7 @@ public class PurpurWorldConfig {
@@ -2243,6 +2244,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,16 +51,16 @@ index 5d8cf9c7e7171642a383f2033f5ef540aaef726e..8f09c1e1c803b3e9e7c77aa63fd78a6b
}
public boolean vindicatorRidable = false;
@@ -2273,6 +2275,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
@@ -2276,6 +2278,7 @@ public class PurpurWorldConfig {
public double wanderingTraderTemptRange = 10.0D;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
+ public boolean wanderingTraderAllowTrading = true;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2287,6 +2290,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
@@ -2291,6 +2294,7 @@ public class PurpurWorldConfig {
wanderingTraderTemptRange = getDouble("mobs.wandering_trader.attributes.tempt_range", wanderingTraderTemptRange);
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);

View File

@@ -40,7 +40,7 @@ index 713b84c2c07145febc1e5cf4af833dd8f5f1588e..34aca945029f061ca21e8b3e0a2bde49
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f09c1e1c803b3e9e7c77aa63fd78a6b3b3cc93d..e1aa14a4dd6966cc8ab8fefd193fcaadfe2f3a39 100644
index 3584b2ce21c1b6219acf2321065ca4eba85efff0..360a2e2a2b8849b3f792c93f2f0b4802abe732f6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -165,6 +165,15 @@ public class PurpurWorldConfig {

View File

@@ -36,10 +36,10 @@ index 3513b15f6622bfc134ecfcd9129f81a8acc2c601..6e70579a58a1bf906b176b81713e5531
} else {
DoorBlock blockdoor = (DoorBlock) iblockdata.getBlock();
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index 485a49bb13532177a949938d4b99c934518a0af1..dac073bf9626bd8198c912241d4ca36d90b8441c 100644
index 5ffe9bf4e325570fef0b23d3fcb0b5d9afac4107..14577fb82069750d513c13ebb22c35d097feefd5 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -157,8 +157,8 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -164,8 +164,8 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
}
if (level().purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur
@@ -82,7 +82,7 @@ index 077b99caf0ec0ee098786d23194d88e1dc4481ce..daf865c20cc193a12db0d98e3c0472ee
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aa81bb0133900ce9fefc219b9a093c9cf6ca6216..fbf03f4111d1d7c49a6f4f630aa95299d9d91992 100644
index 6ecbf56cf873f48d46aa7da869636c6ec313b00b..5653a9713454a99a862444194bd902de9e2cd77b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -464,6 +464,16 @@ public class PurpurWorldConfig {

View File

@@ -18,10 +18,10 @@ index e0f25b057b7b908a10038d9e9695a500aa883c75..e63b408594b5d2673148e39c1deafc85
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fa3a059698ebb4d0e2bda13159c064f281753152..b5d87a818536c330628dfe8313bd3eacde62a443 100644
index 96de3a3d240c90905e25c9b7d851baf24ab30dbf..c3b837fc40c859098ef68bc8ff2b500b3d9dba92 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2397,6 +2397,7 @@ public class PurpurWorldConfig {
@@ -2401,6 +2401,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index fa3a059698ebb4d0e2bda13159c064f281753152..b5d87a818536c330628dfe8313bd3eac
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2418,6 +2419,7 @@ public class PurpurWorldConfig {
@@ -2422,6 +2423,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);

View File

@@ -18,10 +18,10 @@ index 4f8ee2e5db3352306f3c035052866d95630f4aaf..b8b0b89b7f0a21ecff4ab6286f8a114e
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0a490f119ab9ca4fd2c1237b8bc0ee8edcbe1c4f..8c065c6a4c26cd048fbaebb47f844837fe772b0c 100644
index 391a25d4dc008b8cf13d167648e5033d5f51d1ed..9a763200f34b1232f361cec421615dbfa23e7c05 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2686,4 +2686,9 @@ public class PurpurWorldConfig {
@@ -2690,4 +2690,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);
}

View File

@@ -18,10 +18,10 @@ index 7298ba35cb27269e778de6b265933baed3077b36..623e8ef53d6336b3e3c83fd37eda1324
return InteractionResult.SUCCESS_SERVER;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7066d1b294ef907cdfe49359a610a48171fb1ba8..5b0bea76d109d7dcf3fe20aab5e2d0e7efb87713 100644
index 753fdcd39fcb4696766070f8de2e414bd289cd95..0d94d2ed311b03cb13a5a4771c870dc1ee493357 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2944,6 +2944,8 @@ public class PurpurWorldConfig {
@@ -2948,6 +2948,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
@@ -30,7 +30,7 @@ index 7066d1b294ef907cdfe49359a610a48171fb1ba8..5b0bea76d109d7dcf3fe20aab5e2d0e7
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2960,6 +2962,8 @@ public class PurpurWorldConfig {
@@ -2964,6 +2966,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);

View File

@@ -18,10 +18,10 @@ index 4e59cbd95d2ee1b69a38fc23015a6262d1a2c53b..1857e0899b32a078bd0e9e4b784ea60b
// worldserver.globalLevelEvent(1023, new BlockPosition(this), 0);
int viewDistance = world.getCraftServer().getViewDistance() * 16;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 019ca3f4a506b5b964f78b4efb79111ea1b5fd76..28a444c0ed6b8dffedf00a4bc95d6351d4a08212 100644
index c4ddc1c2429857a5cb083613a26a35fdd07f7234..2a8ef714d2820c8b6ea360883326a09aa61ec51c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2779,6 +2779,7 @@ public class PurpurWorldConfig {
@@ -2783,6 +2783,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
@@ -29,7 +29,7 @@ index 019ca3f4a506b5b964f78b4efb79111ea1b5fd76..28a444c0ed6b8dffedf00a4bc95d6351
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2801,6 +2802,7 @@ public class PurpurWorldConfig {
@@ -2805,6 +2806,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);

View File

@@ -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 eb09366f743a2f471f126259e2ef608d14639377..b8be7d5fb350a7a782404abbae295e313f9948ed 100644
index 3c99a7d692215c4906f206052c6544164827ac7f..3cf070d9bb17c36d70df8f831c05a17f4b1b59ba 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3013,4 +3013,27 @@ public class PurpurWorldConfig {
@@ -3017,4 +3017,27 @@ public class PurpurWorldConfig {
private void hungerSettings() {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}

View File

@@ -47,10 +47,10 @@ index 53cea36ec931de89e0060613acf87beb51dc16ec..fd5489993dca0f940da69e9163f78e5c
if (dripChance < f1) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b8be7d5fb350a7a782404abbae295e313f9948ed..87374995aef0061ffbd64a1ee7a88e21935e6759 100644
index 3cf070d9bb17c36d70df8f831c05a17f4b1b59ba..b40eee6cba9272c945a12c2964b33f172db94ce6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3036,4 +3036,15 @@ public class PurpurWorldConfig {
@@ -3040,4 +3040,15 @@ public class PurpurWorldConfig {
});
conduitBlocks = conduitBlockList.toArray(Block[]::new);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option for beds to explode on villager sleep
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 3b17133289f95e5420f1c0a73b34b953470df533..cd57f70a20f3b6b1eb1fd5d336be6297268c9605 100644
index 9efd57ffc088e5239a0c94bd8da30c6fd32a5ad6..ba42a5643f3cae5dcf392927733fa79e2b47f822 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1072,6 +1072,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1073,6 +1073,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public void startSleeping(BlockPos pos) {
@@ -22,7 +22,7 @@ index 3b17133289f95e5420f1c0a73b34b953470df533..cd57f70a20f3b6b1eb1fd5d336be6297
this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level().getGameTime()); // CraftBukkit - decompile error
this.brain.eraseMemory(MemoryModuleType.WALK_TARGET);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4e4fda61d820a320215a64635421a804f6f63df5..7e40f5790c243994d86cc8fdedc3ce7dcb94e24e 100644
index 0522131a030e9a461716e0696939312169032914..6f2f173c386ffba9b2e104612ee5e9c3c8957eb0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -784,6 +784,7 @@ public class PurpurWorldConfig {

View File

@@ -18,10 +18,10 @@ index 623e8ef53d6336b3e3c83fd37eda13244a3b4ab6..3759f28c7f516a94ca8fe1b8f82230b9
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 dcd17df4935b06108d41b6d652d030c31364e413..1b516481d32eb9d90faeb2c51ca3658685961ed1 100644
index 98cfcc83104905ef458d64128fc3e3126d133bbf..de881d36a6c1f48c8269cc14da194d2a01466c31 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3010,6 +3010,7 @@ public class PurpurWorldConfig {
@@ -3014,6 +3014,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index dcd17df4935b06108d41b6d652d030c31364e413..1b516481d32eb9d90faeb2c51ca36586
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -3028,6 +3029,7 @@ public class PurpurWorldConfig {
@@ -3032,6 +3033,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);

View File

@@ -165,7 +165,7 @@ index c6e638cf4463db972a99054cb11b07991ca9eb2e..9a6471d2f1eb1c8af006b70b6bba0b66
protected void registerGoals() {
if (level().purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index 9682f0b26456f3db005a4996123c6b9e2dfa19ef..529b1bef6abcecdd2c08afafc6548aeee7db9203 100644
index 9d85342439977d3ac72ef133733df4f57a68714a..6cbe80e13a590817d3ecf27d89202f10e2cd83dc 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -97,6 +97,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
@@ -309,7 +309,7 @@ index 486709c9701657c7aa93586f539c18e4157f8ef3..1a0c71ed6f3bd3d961f9b30ab29a62d6
public int getMaxSchoolSize() {
return 5;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index 3ec09aadd13ad769740b0c5a289435203d671471..a13ce089bacfb6644eea81fbe7c6d640aedaea96 100644
index 3f54b38a3182b116b80ef9ba53c160b343da855a..38f651ab5f8e25e6d653a86dcb9875990651542a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -124,6 +124,11 @@ public class Sheep extends Animal implements Shearable {
@@ -389,7 +389,7 @@ index 96a6f13fe6ea02412974fd4c8cf015467ef8e02c..c9e307452a097329c26893673055cfb7
this.entityData.set(Turtle.HOME_POS, pos);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 15675dd5df0ec88636019ac57fd0540bef3af5f6..499e3294f8dd19fb3802f521cb7d24d0998c8aeb 100644
index 5fea6f7e9b7c5d2b4845effdd1b9d40b5b8033b3..420345f130a40c4f59a021a4bdce3e218dc87cde 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -223,6 +223,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -1125,10 +1125,10 @@ index 9c196b0cf49cb6f69bd17748fd13ce5960094f88..bc3b0eb21200eae7e419b2571871b36f
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index cd57f70a20f3b6b1eb1fd5d336be6297268c9605..8e519706b025579aad1b74be3b8c6c49146a64a2 100644
index 0504d4d562205d6628cef970ef1a2aedcde974c9..0f79a5560a6bacde786a1eacbdcbe0d946e03674 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -195,6 +195,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -196,6 +196,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return this.level().purpurConfig.villagerTakeDamageFromWater;
}
@@ -1141,10 +1141,10 @@ index cd57f70a20f3b6b1eb1fd5d336be6297268c9605..8e519706b025579aad1b74be3b8c6c49
public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index dac073bf9626bd8198c912241d4ca36d90b8441c..ac4b31ab1297b34b5105c7bdc30ddea6d2d5e9a3 100644
index 7d219c1bfdcdc6d06dcb91c33ef09f88dca13aa3..37ba31724fb3630c9c7d8040f47be36e037d4e48 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -104,6 +104,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -111,6 +111,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return this.level().purpurConfig.wanderingTraderTakeDamageFromWater;
}
@@ -1157,7 +1157,7 @@ index dac073bf9626bd8198c912241d4ca36d90b8441c..ac4b31ab1297b34b5105c7bdc30ddea6
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 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42daab2ebab 100644
index 74a5f52f912af3867c95e96eef70d4a4e7c38abf..af72feb3d1ac919eaf3e2a35aa78525a31aa837d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1087,6 +1087,7 @@ public class PurpurWorldConfig {
@@ -2120,7 +2120,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean villagerRidable = false;
@@ -2741,6 +2861,7 @@ public class PurpurWorldConfig {
@@ -2742,6 +2862,7 @@ public class PurpurWorldConfig {
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
@@ -2128,7 +2128,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2761,6 +2882,7 @@ public class PurpurWorldConfig {
@@ -2763,6 +2884,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);
@@ -2136,7 +2136,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean vindicatorRidable = false;
@@ -2770,6 +2892,7 @@ public class PurpurWorldConfig {
@@ -2772,6 +2894,7 @@ public class PurpurWorldConfig {
public double vindicatorScale = 1.0D;
public double vindicatorJohnnySpawnChance = 0D;
public boolean vindicatorTakeDamageFromWater = false;
@@ -2144,7 +2144,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -2783,6 +2906,7 @@ public class PurpurWorldConfig {
@@ -2785,6 +2908,7 @@ public class PurpurWorldConfig {
vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D);
vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance);
vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater);
@@ -2152,7 +2152,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean wanderingTraderRidable = false;
@@ -2794,6 +2918,7 @@ public class PurpurWorldConfig {
@@ -2797,6 +2921,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
public boolean wanderingTraderAllowTrading = true;
@@ -2160,7 +2160,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2809,6 +2934,7 @@ public class PurpurWorldConfig {
@@ -2813,6 +2938,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);
@@ -2168,7 +2168,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean wardenRidable = false;
@@ -2826,6 +2952,7 @@ public class PurpurWorldConfig {
@@ -2830,6 +2956,7 @@ public class PurpurWorldConfig {
public double witchMaxHealth = 26.0D;
public double witchScale = 1.0D;
public boolean witchTakeDamageFromWater = false;
@@ -2176,7 +2176,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void witchSettings() {
witchRidable = getBoolean("mobs.witch.ridable", witchRidable);
witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater);
@@ -2838,6 +2965,7 @@ public class PurpurWorldConfig {
@@ -2842,6 +2969,7 @@ public class PurpurWorldConfig {
witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth);
witchScale = Mth.clamp(getDouble("mobs.witch.attributes.scale", witchScale), 0.0625D, 16.0D);
witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater);
@@ -2184,7 +2184,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean witherRidable = false;
@@ -2853,6 +2981,7 @@ public class PurpurWorldConfig {
@@ -2857,6 +2985,7 @@ public class PurpurWorldConfig {
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
public boolean witherPlaySpawnSound = true;
@@ -2192,7 +2192,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2876,6 +3005,7 @@ public class PurpurWorldConfig {
@@ -2880,6 +3009,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);
@@ -2200,7 +2200,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean witherSkeletonRidable = false;
@@ -2884,6 +3014,7 @@ public class PurpurWorldConfig {
@@ -2888,6 +3018,7 @@ public class PurpurWorldConfig {
public double witherSkeletonMaxHealth = 20.0D;
public double witherSkeletonScale = 1.0D;
public boolean witherSkeletonTakeDamageFromWater = false;
@@ -2208,7 +2208,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void witherSkeletonSettings() {
witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable);
witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater);
@@ -2896,6 +3027,7 @@ public class PurpurWorldConfig {
@@ -2900,6 +3031,7 @@ public class PurpurWorldConfig {
witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth);
witherSkeletonScale = Mth.clamp(getDouble("mobs.wither_skeleton.attributes.scale", witherSkeletonScale), 0.0625D, 16.0D);
witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater);
@@ -2216,7 +2216,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean wolfRidable = false;
@@ -2908,6 +3040,7 @@ public class PurpurWorldConfig {
@@ -2912,6 +3044,7 @@ public class PurpurWorldConfig {
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
public boolean wolfTakeDamageFromWater = false;
@@ -2224,7 +2224,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -2928,6 +3061,7 @@ public class PurpurWorldConfig {
@@ -2932,6 +3065,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);
@@ -2232,7 +2232,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean zoglinRidable = false;
@@ -2936,6 +3070,7 @@ public class PurpurWorldConfig {
@@ -2940,6 +3074,7 @@ public class PurpurWorldConfig {
public double zoglinMaxHealth = 40.0D;
public double zoglinScale = 1.0D;
public boolean zoglinTakeDamageFromWater = false;
@@ -2240,7 +2240,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void zoglinSettings() {
zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable);
zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater);
@@ -2948,6 +3083,7 @@ public class PurpurWorldConfig {
@@ -2952,6 +3087,7 @@ public class PurpurWorldConfig {
zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth);
zoglinScale = Mth.clamp(getDouble("mobs.zoglin.attributes.scale", zoglinScale), 0.0625D, 16.0D);
zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater);
@@ -2248,7 +2248,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean zombieRidable = false;
@@ -2962,6 +3098,7 @@ public class PurpurWorldConfig {
@@ -2966,6 +3102,7 @@ public class PurpurWorldConfig {
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
@@ -2256,7 +2256,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2980,6 +3117,7 @@ public class PurpurWorldConfig {
@@ -2984,6 +3121,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);
@@ -2264,7 +2264,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean zombieHorseRidable = false;
@@ -2993,6 +3131,7 @@ public class PurpurWorldConfig {
@@ -2997,6 +3135,7 @@ public class PurpurWorldConfig {
public double zombieHorseMovementSpeedMax = 0.2D;
public double zombieHorseSpawnChance = 0.0D;
public boolean zombieHorseTakeDamageFromWater = false;
@@ -2272,7 +2272,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void zombieHorseSettings() {
zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable);
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
@@ -3011,6 +3150,7 @@ public class PurpurWorldConfig {
@@ -3015,6 +3154,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);
@@ -2280,7 +2280,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean zombieVillagerRidable = false;
@@ -3026,6 +3166,7 @@ public class PurpurWorldConfig {
@@ -3030,6 +3170,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true;
@@ -2288,7 +2288,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -3045,6 +3186,7 @@ public class PurpurWorldConfig {
@@ -3049,6 +3190,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);
@@ -2296,7 +2296,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
}
public boolean zombifiedPiglinRidable = false;
@@ -3058,6 +3200,7 @@ public class PurpurWorldConfig {
@@ -3062,6 +3204,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false;
@@ -2304,7 +2304,7 @@ index 1dc0c3fcdd870ba3e365ed151660d5c39cbc3664..ce2c25871cacd7de0f22ac8942ada42d
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -3075,6 +3218,7 @@ public class PurpurWorldConfig {
@@ -3079,6 +3222,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);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index fd18e01249d9b9958200ee16efaeeaf11360bafe..9790c3ad54ff28ccb85db224b799bbdb08a34ba5 100644
index 58be94a164c3413dad4b3a7bb1a1544edb88e9ba..b4dd7d602dc062cc96aff048688fd808db0e4b12 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1069,9 +1069,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -32,7 +32,7 @@ index fd18e01249d9b9958200ee16efaeeaf11360bafe..9790c3ad54ff28ccb85db224b799bbdb
// 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 212ae6988d67fac1354ebd6a8cb7cd252f261c2f..7863dda1663e2d6794e0c5fa6ee4fe1628c5afd3 100644
index 72cc0f0164860e56ff90aeee3a0be6a9dd6f305d..670ace33d3016e94031517802ce9f5b746fe0930 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1379,6 +1379,7 @@ public class PurpurWorldConfig {
@@ -83,7 +83,7 @@ index 212ae6988d67fac1354ebd6a8cb7cd252f261c2f..7863dda1663e2d6794e0c5fa6ee4fe16
}
public boolean skeletonHorseRidable = false;
@@ -3105,6 +3111,7 @@ public class PurpurWorldConfig {
@@ -3109,6 +3115,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -91,7 +91,7 @@ index 212ae6988d67fac1354ebd6a8cb7cd252f261c2f..7863dda1663e2d6794e0c5fa6ee4fe16
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -3124,6 +3131,7 @@ public class PurpurWorldConfig {
@@ -3128,6 +3135,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);

View File

@@ -9,10 +9,10 @@ This patch adds a config option to allow the minimum demand to instead
be configurable.
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 8e519706b025579aad1b74be3b8c6c49146a64a2..b1a0a11f8443a797146dbaf46b9830133f3a51e0 100644
index 0f79a5560a6bacde786a1eacbdcbe0d946e03674..e9032364c78514e7a0a2aa162ba564dc0598a3c4 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -539,7 +539,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -540,7 +540,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
while (iterator.hasNext()) {
MerchantOffer merchantrecipe = (MerchantOffer) iterator.next();
@@ -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 9882be8d2a0c235b61dabfd31d7680a934f3ce81..3be84a156379bbb529ffcbe78a6750fc9f356132 100644
index ffd547eccd7356c29957a9621653ff04d5dc8b1b..97e8fc04a61f7c3844a74c99859c4f4b938b1810 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2891,6 +2891,7 @@ public class PurpurWorldConfig {
@@ -2892,6 +2892,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index 9882be8d2a0c235b61dabfd31d7680a934f3ce81..3be84a156379bbb529ffcbe78a6750fc
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2912,6 +2913,7 @@ public class PurpurWorldConfig {
@@ -2914,6 +2915,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);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index b1a0a11f8443a797146dbaf46b9830133f3a51e0..052a131d7222ac490b5c40e65c1f801a4299b4e9 100644
index e9032364c78514e7a0a2aa162ba564dc0598a3c4..f787aec8bfa291447b3bca297239f44a9fe342a7 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -141,6 +141,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -17,7 +17,7 @@ index b1a0a11f8443a797146dbaf46b9830133f3a51e0..052a131d7222ac490b5c40e65c1f801a
public Villager(EntityType<? extends Villager> entityType, Level world) {
this(entityType, world, VillagerType.PLAINS);
@@ -200,6 +202,48 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -201,6 +203,48 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return this.level().purpurConfig.villagerAlwaysDropExp;
}
@@ -66,7 +66,7 @@ index b1a0a11f8443a797146dbaf46b9830133f3a51e0..052a131d7222ac490b5c40e65c1f801a
@Override
public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
@@ -294,11 +338,19 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -295,11 +339,19 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
// Paper start - EAR 2
this.customServerAiStep(world, false);
}
@@ -104,10 +104,10 @@ index 8e895d6f84f7d84b219f2424909dd42e5f08dec4..53dcce0701d713c5dd097340a91b8be4
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3be84a156379bbb529ffcbe78a6750fc9f356132..a46e3c0d5ef33f4ef39be237ab24e434dda8c570 100644
index 97e8fc04a61f7c3844a74c99859c4f4b938b1810..d5dc045f2ca66af0f484fd9ed15bf12db02baeef 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2892,6 +2892,9 @@ public class PurpurWorldConfig {
@@ -2893,6 +2893,9 @@ public class PurpurWorldConfig {
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
public int villagerMinimumDemand = 0;
@@ -117,7 +117,7 @@ index 3be84a156379bbb529ffcbe78a6750fc9f356132..a46e3c0d5ef33f4ef39be237ab24e434
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2914,6 +2917,18 @@ public class PurpurWorldConfig {
@@ -2916,6 +2919,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);

View File

@@ -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 a46e3c0d5ef33f4ef39be237ab24e434dda8c570..19624a2e4f6cf83b9e43f338cb8fcafb2dfa562e 100644
index d5dc045f2ca66af0f484fd9ed15bf12db02baeef..08025b965142096d8b9c8a3cb1d6813f4fed91bb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2895,6 +2895,7 @@ public class PurpurWorldConfig {
@@ -2896,6 +2896,7 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
@@ -28,7 +28,7 @@ index a46e3c0d5ef33f4ef39be237ab24e434dda8c570..19624a2e4f6cf83b9e43f338cb8fcafb
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2929,6 +2930,7 @@ public class PurpurWorldConfig {
@@ -2931,6 +2932,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);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 052a131d7222ac490b5c40e65c1f801a4299b4e9..c885b214f4d7d91627e98d8779aab8515f205636 100644
index f787aec8bfa291447b3bca297239f44a9fe342a7..38594d3f520b4d75db441cfdde121ac65d2295cc 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1065,6 +1065,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1066,6 +1066,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) {
@@ -18,10 +18,10 @@ index 052a131d7222ac490b5c40e65c1f801a4299b4e9..c885b214f4d7d91627e98d8779aab851
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> 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 86eea11d91a8d0f4d6d40ddbf83bdba9f7525ab1..3bfdb3c2c1f67a1281cfca44eb1eae6c888d8e92 100644
index a81fdeb38abaf03eb7231ed2ba4e8b693e378a4f..d7789c4969e0c56322d411bfc5d0e9666e719fbc 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 {
@@ -2907,6 +2907,8 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
public boolean villagerDisplayTradeItem = true;
@@ -30,7 +30,7 @@ index 86eea11d91a8d0f4d6d40ddbf83bdba9f7525ab1..3bfdb3c2c1f67a1281cfca44eb1eae6c
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2941,6 +2943,8 @@ public class PurpurWorldConfig {
@@ -2943,6 +2945,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);

View File

@@ -33,7 +33,7 @@ index 7cfd9e4e29b8f3cf277679f785bae3cb12d2bd20..36a56553702fa6e4a2ac92b3639c210c
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 26b8f6f80e06e5c71c41c438e96de84e4cd59024..aa68b09686aec0ea58e04835baa33ddc7a5b5bad 100644
index d4a0c0274f711d40c0b40d643fb0e6295f3c1f03..5c04ccd6b9e4a69abd0388440a29855d4f953fcd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -211,9 +211,11 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Milk Keeps Beneficial Effects
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 199a2619de1b6754edf89ffe0c63c0e5104e3055..4539a6ad5334417b9c3ff239609466efd8516ef7 100644
index 34f3ae000a794da60bdfe3072071143b3fdfd971..1e312afb4abcc9581c2a6097532a8dfbe67c019f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1149,6 +1149,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -17,10 +17,10 @@ index 199a2619de1b6754edf89ffe0c63c0e5104e3055..4539a6ad5334417b9c3ff239609466ef
if (event.isCancelled()) {
continue;
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index ac4b31ab1297b34b5105c7bdc30ddea6d2d5e9a3..959e10586cddaae2590d2d84f5fd809dad80889b 100644
index a8cbf8cc21b0835a040901ee34f240cd327ad073..b6a866438b582adabe8395e0d4167d2187042e65 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -116,7 +116,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -123,7 +123,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return this.canDrinkPotion && this.level().isNight() && !entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
}));
this.goalSelector.addGoal(0, new UseItemGoal<>(this, new ItemStack(Items.MILK_BUCKET), SoundEvents.WANDERING_TRADER_REAPPEARED, (entityvillagertrader) -> {
@@ -30,7 +30,7 @@ index ac4b31ab1297b34b5105c7bdc30ddea6d2d5e9a3..959e10586cddaae2590d2d84f5fd809d
this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this));
this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 28fdb5aaf7cd27cab1e3d04283f512b6786b19f6..76ed4f11372088b8c3ad04f215d3f6dc0e50594e 100644
index 2ef8e8de90e2e0ebc92f060264c9353906763516..11b79fae9ea84d6e25b4f69aa428faa75c4f9aac 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -145,6 +145,7 @@ public class PurpurWorldConfig {

View File

@@ -17,7 +17,7 @@ index e787d72ff855c4db8a772bf1bbf7a77b93d33fc5..febd5e137290952d820a7869eaaef77e
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1b948280b0d92ec607d4c9dee0d2f1749e9fe8b5..f083d0efb0f0aee24779fc866204cbb936d3f55f 100644
index 04d9535ff5821f410be1c0c25bce207bf7d67dd9..67f8924ca07abfd95cef6a56669e976b837f253e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -418,6 +418,7 @@ public class PurpurWorldConfig {

View File

@@ -44,10 +44,10 @@ index de87483600e55d88176fe25db621bbd3e464729f..287ba483614e79e78022e703ef891f59
+ // 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 be88a9c0847349d3460d1e7b851c2e9d673ff093..7b78365741d0a6bcf6381debdf3f2e5896b4c679 100644
index cdb67f9e73865d0cefa9ce34e43a7d1daa642f89..bb434b12c7400e6129addd5d6672ea9847c00c79 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3397,4 +3397,11 @@ public class PurpurWorldConfig {
@@ -3401,4 +3401,11 @@ public class PurpurWorldConfig {
cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance);
cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance);
}

View File

@@ -31,10 +31,10 @@ index 92731b6b593289e9f583c9b705b219e81fcd8e73..9104d7010bda6f9f73b478c11490ef9c
// Paper end - optimise POI access
if (path != null && path.canReach()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6bf2555fb77163f0a8243809095b72f2d13bc95d..e10c7273130d3c4cf5e42b71d78df2621b1bab83 100644
index 83dcd2f078a8caffeff2f5d7458dc85631fbd1ff..ac893384c2d6daf81dcc057ea6ef3a671e15a080 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2990,6 +2990,8 @@ public class PurpurWorldConfig {
@@ -2991,6 +2991,8 @@ public class PurpurWorldConfig {
public boolean villagerDisplayTradeItem = true;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -43,7 +43,7 @@ index 6bf2555fb77163f0a8243809095b72f2d13bc95d..e10c7273130d3c4cf5e42b71d78df262
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -3027,6 +3029,8 @@ public class PurpurWorldConfig {
@@ -3029,6 +3031,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);