Files
Purpur/patches/server/0101-Make-entity-breeding-times-configurable.patch
2023-06-08 19:58:32 -07:00

928 lines
44 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Date: Sun, 15 Nov 2020 02:18:15 -0800
Subject: [PATCH] Make entity breeding times configurable
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
index 0951c04533e7c39b969d041271684355770b53c2..02d4ba2ccdce99ca97614baa7c8e49213126af96 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
@@ -123,8 +123,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
return Optional.empty();
}
// CraftBukkit end
- parent.setAge(6000);
- partner.setAge(6000);
+ // Purpur start
+ parent.setAge(world.purpurConfig.villagerBreedingTicks);
+ partner.setAge(world.purpurConfig.villagerBreedingTicks);
+ // Purpur end
world.addFreshEntityWithPassengers(entityvillager2, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
world.broadcastEntityEvent(entityvillager2, (byte) 12);
return Optional.of(entityvillager2);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a059835af64 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob {
@Nullable
public UUID loveCause;
public ItemStack breedItem; // CraftBukkit - Add breedItem variable
+ public abstract int getPurpurBreedTime(); // Purpur
protected Animal(EntityType<? extends Animal> type, Level world) {
super(type, world);
@@ -272,8 +273,10 @@ public abstract class Animal extends AgeableMob {
entityplayer.awardStat(Stats.ANIMALS_BRED);
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, entityanimal, entityageable);
});
- this.setAge(6000);
- entityanimal.setAge(6000);
+ // Purpur start
+ this.setAge(this.getPurpurBreedTime());
+ entityanimal.setAge(entityanimal.getPurpurBreedTime());
+ // Purpur end
this.resetLove();
entityanimal.resetLove();
worldserver.broadcastEntityEvent(this, (byte) 18);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index 5c1d0546c014c3a739311c8a8432e5cd1d8cacbc..e0ab585b708fd58db9688fc4631eaacd79a7c8a3 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -471,6 +471,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.beeMaxHealth);
}
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.beeBreedingTicks;
+ }
+
@Override
public int getRemainingPersistentAngerTime() {
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 845781610102d2ef89522619b8059073cc48b75d..a312e8ff4e4cd3328f0586348a2eff3deaf4617d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -127,6 +127,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.catBreedingTicks;
+ }
+
public ResourceLocation getResourceLocation() {
return this.getVariant().texture();
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
index bf281b45979e16551fe4777ff69fb9ef67d1f839..5ad29dda33d3d7442992b2d47f44d419dda3021b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -79,6 +79,11 @@ public class Chicken extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.chickenBreedingTicks;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
index 07d60d3f49a4ed67cc4739baddbb41818b557eb1..fd8ec46ccb691d7f85a7a6bb44e1d0db3703b4d6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -65,6 +65,11 @@ public class Cow extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.cowBreedingTicks;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 71fba6fd95f362916e93e89b626dad7c7a72da0b..2232af2cef82014570596c122e11a47d3ae15b9b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -186,6 +186,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.foxBreedingTicks;
+ }
+
@Override
protected void defineSynchedData() {
super.defineSynchedData();
@@ -981,8 +986,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox);
}
- this.animal.setAge(6000);
- this.partner.setAge(6000);
+ // Purpur start
+ this.animal.setAge(this.animal.getPurpurBreedTime());
+ this.partner.setAge(this.partner.getPurpurBreedTime());
+ // Purpur end
this.animal.resetLove();
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 3e798a9d94963dc39ec4a81265fa659b6cfe5db8..6bc5cca1c0896dda25af505e7ff3d68e5e83a54b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -85,6 +85,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.mooshroomBreedingTicks;
+ }
+
@Override
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
index 1561ee4f27f05adfbb4a0a838615ce47e4bf84c8..237e672925b946dd7dd1e4c502d60daaad7a707b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -90,6 +90,11 @@ public class Ocelot extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.ocelotBreedingTicks;
+ }
+
public boolean isTrusting() {
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index e1b4092d245c4e30f8a028378b16f480a710d274..1eddcbfe32a9744982b62667068b88eecf68d81e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -140,6 +140,11 @@ public class Panda extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.pandaBreedingTicks;
+ }
+
@Override
public boolean canTakeItem(ItemStack stack) {
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index d32fdd557fff9b99835c97967a49455da7872237..75ac34b0e65d593b424f23ab5756e31c8b68950d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -196,6 +196,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return 6000;
+ }
+
@Nullable
@Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
index 2bd72ba2112c7212f331e6ca2655f557eee241d9..cb7e46b5db2980db62bb65e2f5db7428e37140be 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -86,6 +86,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.pigBreedingTicks;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
index 05739e69f1a11138d7c13bb9d8ca7695753ae40c..a2bc1c0d01770da3fa8de876e4067c71c7a25646 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -120,6 +120,11 @@ public class PolarBear extends Animal implements NeutralMob {
}
}
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.polarBearBreedingTicks;
+ }
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index f7a1b15bd29e9c0848141da469acbfb67e8d8e4d..857d4a70c8a9678e689ee0807f42cd5f7cc4902d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -142,6 +142,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.rabbitBreedingTicks;
+ }
+
// CraftBukkit start - code from constructor
public void initializePathFinderGoals(){
this.setSpeedModifier(0.0D);
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 99ed0cf1bb04df94f3ac3b9acd2076a26d43ab1e..fbaa05f3564aeaf31bfaac34ef0112d11869a2c8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -139,6 +139,11 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.sheepBreedingTicks;
+ }
+
@Override
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index 68b50ffd17e4061c0dba0fb3452cb86014c88e89..726b53822d115fdd6f8911258ff9fc612a4ad54e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -105,6 +105,11 @@ public class Turtle extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.turtleBreedingTicks;
+ }
+
public void setHomePos(BlockPos pos) {
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
}
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 d74b9426116770ad42b5ceb85ce9a19fe11db74a..3cd49c57d6dc4b0db31c3ac40447c89ce7e193d7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -129,6 +129,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.wolfBreedingTicks;
+ }
+
@Override
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 11f24bf5886ffccd05b8f78ce960fa3c1ad76856..be44bbd6dd3278ae533f07bbd1f4fb3727f177b7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -120,6 +120,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.axolotlBreedingTicks;
+ }
+
@Override
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 95fbdb0e9c59edeb647fe0e5d51d5e6a35152cd6..eb7c9846aa01ec0f5e46c24005110b6e6961e295 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -84,6 +84,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider
groundPathNavigation.setCanWalkOverFences(true);
}
+ // Purpur start
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.camelBreedingTicks;
+ }
+ // Purpur end
+
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index b6751a90d5ae004accd08ad23c12e18b7abe2118..2cde912c79656199d31bea2d0c84d72cfb1b2a05 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -136,6 +136,10 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
}
// Purpur end
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.frogBreedingTicks;
+ }
+
@Override
protected Brain.Provider<Frog> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index b1d78fd5674826b021b9f300647b1957daa8ba08..4f7256e6e130be1e84be3b2979b836021460aceb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -106,6 +106,11 @@ public class Goat extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.goatBreedingTicks;
+ }
+
@Override
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
index e0568b3401f42ffd5cfd35da52c0a20d8626776e..a9e04b76c0a3831e6b136136ae15dd9884d68148 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -37,6 +37,11 @@ public class Donkey extends AbstractChestedHorse {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.donkeyBreedingTicks;
+ }
+
@Override
protected SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 508111fef316d765d284af31263d5c0dda751774..65fec83d96a02bd3b7c9ba034db95a2bb0833dba 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -62,6 +62,11 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.horseBreedingTicks;
+ }
+
@Override
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 9dbfefa7311d4c0f6805fce24429bec2739c6c49..80a7bc90fb4040afd2f7f0b19f5f6dbb6f9d13e8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -138,6 +138,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.llamaBreedingTicks;
+ }
+
public boolean isTraderLlama() {
return false;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
index 885e5aceacab0a2451d156418c35e4a7d5949aba..8b02a2a3620adf5af5ccbf93eda3c7d04f242b30 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
@@ -36,6 +36,11 @@ public class Mule extends AbstractChestedHorse {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.muleBreedingTicks;
+ }
+
@Override
protected SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 2be73b5fd5fe89f256e7fa0265cb7e4555ffe4b9..614bec5831a51e92f8201d0ce53ceb9b81fdc078 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -50,6 +50,11 @@ public class SkeletonHorse extends AbstractHorse {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return 6000;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
index 6e6b1ec68c71b53f4e5e7b927511a2c147559821..3751a1c46d615000fdb5eaff482601575e81d614 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -64,6 +64,11 @@ public class TraderLlama extends Llama {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.traderLlamaBreedingTicks;
+ }
+
@Override
public boolean isTraderLlama() {
return true;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 2243d71b5274d7dd53a15ed67f0b58e7467b9533..423d0ec37fe812fd994edb81c445f24543461ec4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -48,6 +48,11 @@ public class ZombieHorse extends AbstractHorse {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return 6000;
+ }
+
public static AttributeSupplier.Builder createAttributes() {
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 343b0ea4bceddc4c299a18d06071a70fe06546b9..ffc30f77549f669a9ddd930fd19b38afa6d52818 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -112,6 +112,11 @@ public class Sniffer extends Animal {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.snifferBreedingTicks;
+ }
+
// CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location
@Override
protected void defineSynchedData() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index abefdf6679a4e15ccec4b67147d85bfc6271ac4b..dded8bde49978c01c2534d448adc17812a2c4474 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -122,6 +122,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.striderBreedingTicks;
+ }
+
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable();
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 419377b795f88a8ab67e048e78292a1387ca13e1..35f7f7c75c740760f95eeaef91287a6a0ec3c3cc 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -89,6 +89,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level.purpurConfig.hoglinBreedingTicks;
+ }
+
@Override
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1e1cfe78113742ea865ca56d5bbf01483d2e0a2c..0eda8243f19af580e6ca20bf1583e0f4d6c5504f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -480,8 +480,10 @@ public class PurpurWorldConfig {
}
public double axolotlMaxHealth = 14.0D;
+ public int axolotlBreedingTicks = 6000;
private void axolotlSettings() {
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
+ axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
}
public double batMaxHealth = 6.0D;
@@ -509,6 +511,7 @@ public class PurpurWorldConfig {
}
public double beeMaxHealth = 10.0D;
+ public int beeBreedingTicks = 6000;
private void beeSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.bee.attributes.max-health", beeMaxHealth);
@@ -516,6 +519,7 @@ public class PurpurWorldConfig {
set("mobs.bee.attributes.max_health", oldValue);
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
+ beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
}
public double blazeMaxHealth = 20.0D;
@@ -528,6 +532,7 @@ public class PurpurWorldConfig {
blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth);
}
+ public int camelBreedingTicks = 6000;
public double camelMaxHealthMin = 32.0D;
public double camelMaxHealthMax = 32.0D;
public double camelJumpStrengthMin = 0.42D;
@@ -541,12 +546,14 @@ public class PurpurWorldConfig {
camelJumpStrengthMax = getDouble("mobs.camel.attributes.jump_strength.max", camelJumpStrengthMax);
camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin);
camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
+ camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks);
}
public double catMaxHealth = 10.0D;
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
+ public int catBreedingTicks = 6000;
private void catSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cat.attributes.max-health", catMaxHealth);
@@ -557,6 +564,7 @@ public class PurpurWorldConfig {
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
+ catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks);
}
public double caveSpiderMaxHealth = 12.0D;
@@ -571,6 +579,7 @@ public class PurpurWorldConfig {
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
+ public int chickenBreedingTicks = 6000;
private void chickenSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.chicken.attributes.max-health", chickenMaxHealth);
@@ -579,6 +588,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
+ chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks);
}
public double codMaxHealth = 3.0D;
@@ -593,6 +603,7 @@ public class PurpurWorldConfig {
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
+ public int cowBreedingTicks = 6000;
private void cowSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.cow.attributes.max-health", cowMaxHealth);
@@ -601,6 +612,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
+ cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
}
public double creeperMaxHealth = 20.0D;
@@ -635,6 +647,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
+ public int donkeyBreedingTicks = 6000;
private void donkeySettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.donkey.attributes.max-health.min", donkeyMaxHealthMin);
@@ -649,6 +662,7 @@ public class PurpurWorldConfig {
donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax);
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
+ donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks);
}
public double drownedMaxHealth = 20.0D;
@@ -729,6 +743,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
+ public int foxBreedingTicks = 6000;
private void foxSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.fox.attributes.max-health", foxMaxHealth);
@@ -737,6 +752,12 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
+ foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
+ }
+
+ public int frogBreedingTicks = 6000;
+ private void frogSettings() {
+ frogBreedingTicks = getInt("mobs.frog.breeding-delay-ticks", frogBreedingTicks);
}
public double ghastMaxHealth = 10.0D;
@@ -783,8 +804,10 @@ public class PurpurWorldConfig {
}
public double goatMaxHealth = 10.0D;
+ public int goatBreedingTicks = 6000;
private void goatSettings() {
goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth);
+ goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks);
}
public double guardianMaxHealth = 30.0D;
@@ -798,6 +821,7 @@ public class PurpurWorldConfig {
}
public double hoglinMaxHealth = 40.0D;
+ public int hoglinBreedingTicks = 6000;
private void hoglinSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.hoglin.attributes.max-health", hoglinMaxHealth);
@@ -805,6 +829,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
+ hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks);
}
public double horseMaxHealthMin = 15.0D;
@@ -813,6 +838,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
+ public int horseBreedingTicks = 6000;
private void horseSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.horse.attributes.max-health.min", horseMaxHealthMin);
@@ -827,6 +853,7 @@ public class PurpurWorldConfig {
horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax);
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
+ horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
}
public double huskMaxHealth = 20.0D;
@@ -884,6 +911,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
+ public int llamaBreedingTicks = 6000;
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -901,6 +929,7 @@ public class PurpurWorldConfig {
llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax);
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
+ llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
}
public String magmaCubeMaxHealth = "size * size";
@@ -920,6 +949,7 @@ public class PurpurWorldConfig {
}
public double mooshroomMaxHealth = 10.0D;
+ public int mooshroomBreedingTicks = 6000;
private void mooshroomSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.mooshroom.attributes.max-health", mooshroomMaxHealth);
@@ -927,6 +957,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
+ mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks);
}
public double muleMaxHealthMin = 15.0D;
@@ -935,6 +966,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
+ public int muleBreedingTicks = 6000;
private void muleSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.mule.attributes.max-health.min", muleMaxHealthMin);
@@ -949,9 +981,11 @@ public class PurpurWorldConfig {
muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax);
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
+ muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks);
}
public double ocelotMaxHealth = 10.0D;
+ public int ocelotBreedingTicks = 6000;
private void ocelotSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.ocelot.attributes.max-health", ocelotMaxHealth);
@@ -959,9 +993,11 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
+ ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
}
public double pandaMaxHealth = 20.0D;
+ public int pandaBreedingTicks = 6000;
private void pandaSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.panda.attributes.max-health", pandaMaxHealth);
@@ -969,6 +1005,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
+ pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks);
}
public double parrotMaxHealth = 6.0D;
@@ -1021,6 +1058,7 @@ public class PurpurWorldConfig {
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
+ public int pigBreedingTicks = 6000;
private void pigSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.pig.attributes.max-health", pigMaxHealth);
@@ -1029,6 +1067,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
+ pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks);
}
public double piglinMaxHealth = 16.0D;
@@ -1064,6 +1103,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
+ public int polarBearBreedingTicks = 6000;
private void polarBearSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.polar_bear.attributes.max-health", polarBearMaxHealth);
@@ -1074,6 +1114,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
+ polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks);
}
public double pufferfishMaxHealth = 3.0D;
@@ -1089,6 +1130,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
+ public int rabbitBreedingTicks = 6000;
private void rabbitSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.rabbit.attributes.max-health", rabbitMaxHealth);
@@ -1098,6 +1140,7 @@ public class PurpurWorldConfig {
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
+ rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
}
public double ravagerMaxHealth = 100.0D;
@@ -1121,6 +1164,7 @@ public class PurpurWorldConfig {
}
public double sheepMaxHealth = 8.0D;
+ public int sheepBreedingTicks = 6000;
private void sheepSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth);
@@ -1128,6 +1172,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
+ sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
}
public double shulkerMaxHealth = 30.0D;
@@ -1214,8 +1259,10 @@ public class PurpurWorldConfig {
}
public double snifferMaxHealth = 14.0D;
+ public int snifferBreedingTicks = 6000;
private void snifferSettings() {
snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth);
+ snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", chickenBreedingTicks);
}
public double squidMaxHealth = 10.0D;
@@ -1255,6 +1302,7 @@ public class PurpurWorldConfig {
}
public double striderMaxHealth = 20.0D;
+ public int striderBreedingTicks = 6000;
private void striderSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.strider.attributes.max-health", striderMaxHealth);
@@ -1262,6 +1310,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
+ striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);
}
public double traderLlamaMaxHealthMin = 15.0D;
@@ -1270,6 +1319,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
+ public int traderLlamaBreedingTicks = 6000;
private void traderLlamaSettings() {
if (PurpurConfig.version < 10) {
double oldMin = getDouble("mobs.trader_llama.attributes.max-health.min", traderLlamaMaxHealthMin);
@@ -1284,6 +1334,7 @@ public class PurpurWorldConfig {
traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax);
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
+ traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks);
}
public double tropicalFishMaxHealth = 3.0D;
@@ -1297,6 +1348,7 @@ public class PurpurWorldConfig {
}
public double turtleMaxHealth = 30.0D;
+ public int turtleBreedingTicks = 6000;
private void turtleSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.turtle.attributes.max-health", turtleMaxHealth);
@@ -1304,6 +1356,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
+ turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks);
}
public double vexMaxY = 320D;
@@ -1322,6 +1375,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
+ public int villagerBreedingTicks = 6000;
private void villagerSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth);
@@ -1332,6 +1386,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
+ villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
}
public double vindicatorMaxHealth = 24.0D;
@@ -1399,6 +1454,7 @@ public class PurpurWorldConfig {
}
public double wolfMaxHealth = 8.0D;
+ public int wolfBreedingTicks = 6000;
private void wolfSettings() {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.wolf.attributes.max-health", wolfMaxHealth);
@@ -1406,6 +1462,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);
+ wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks);
}
public double zoglinMaxHealth = 40.0D;