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

@@ -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);