Separate ridable and controllable configs

This commit is contained in:
BillyGalbreath
2022-01-18 09:10:04 -06:00
parent 0a9a17044b
commit bd0a85a17c
94 changed files with 2558 additions and 1857 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@ index 721971f7618751a2e95f1c49fdc48a9c0c672cab..7b141c495095afcd9c8b04c059d692e8
double d = this.llama.distanceToSqr(this.llama.getCaravanHead());
if (d > 676.0D) {
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 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775ba3eb22b 100644
index 98119cf72e7d808d9f3b0ac808c0f286990d2279..f6bd1eff78b3c879ecc439bab3b5aa7674e74044 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
@@ -69,6 +69,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -36,7 +36,7 @@ index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775
public Llama(EntityType<? extends Llama> type, Level world) {
super(type, world);
@@ -160,7 +161,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -165,7 +166,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
if (!this.inventory.getItem(1).isEmpty()) {
nbt.put("DecorItem", this.inventory.getItem(1).save(new CompoundTag()));
}
@@ -45,7 +45,7 @@ index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775
}
@Override
@@ -172,6 +173,12 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -177,6 +178,12 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
this.inventory.setItem(1, ItemStack.of(nbt.getCompound("DecorItem")));
}
@@ -58,7 +58,7 @@ index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775
this.updateContainerEquipment();
}
@@ -511,6 +518,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -516,6 +523,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
public void leaveCaravan() {
if (this.caravanHead != null) {
@@ -66,7 +66,7 @@ index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775
this.caravanHead.caravanTail = null;
}
@@ -518,6 +526,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -523,6 +531,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
public void joinCaravan(Llama llama) {
@@ -74,7 +74,7 @@ index 6e09dbeb6478fa32d8c46da30e45f8c64f214e30..1195f307ec827c206480fed63deb3775
this.caravanHead = llama;
this.caravanHead.caravanTail = this;
}
@@ -535,6 +544,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -540,6 +549,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
return this.caravanHead;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager brain ticks
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 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff485936c77de3 100644
index e413888ee04d6b236d2f7b8323e36d02dfe6b854..3ec933905f247e23c4c13b21dbf6fe4018583c5d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -137,6 +137,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -24,7 +24,7 @@ index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff4859
}
// Purpur start
@@ -272,6 +274,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -277,6 +279,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.level.getProfiler().push("villagerBrain");
// Pufferfish start
if (!inactive) {
@@ -32,23 +32,23 @@ index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff4859
+ boolean tick = (level.getGameTime() + brainTickOffset) % level.purpurConfig.villagerBrainTicks == 0;
+ if (((ServerLevel) level).getServer().lagging ? tick : level.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
+ // Purpur end
if (getRider() == null && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level, this); // Paper
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 83f2729035d42674d480bb508737497a7bffb4c7..a4111896ba007d252cb6fed8824cb99d78727991 100644
index 81524c4f676766c09125187876b46e0704294880..93d89fb27044e5e97574122b0e7863694d245bf0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1092,6 +1092,8 @@ public class PurpurWorldConfig {
public boolean villagerRidable = false;
@@ -1207,6 +1207,8 @@ public class PurpurWorldConfig {
public boolean villagerRidableInWater = false;
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
+ public int villagerBrainTicks = 1;
+ public boolean villagerUseBrainTicksOnlyWhenLagging = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1101,6 +1103,8 @@ public class PurpurWorldConfig {
@@ -1217,6 +1219,8 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1beb9701b6 100644
index 61d39062021ca23aa94d9fcf584f14599fd7411c..0d26d2388cc1963df9bc361b31a572c12e2f8709 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -1,13 +1,36 @@
@@ -45,8 +45,8 @@ index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1b
public class Giant extends Monster {
public Giant(EntityType<? extends Giant> type, Level world) {
@@ -26,18 +49,59 @@ public class Giant extends Monster {
return level.purpurConfig.giantRidableInWater;
@@ -31,18 +54,59 @@ public class Giant extends Monster {
return level.purpurConfig.giantControllable;
}
- @Override
@@ -111,7 +111,7 @@ index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1b
// Purpur end
@Override
@@ -51,6 +115,6 @@ public class Giant extends Monster {
@@ -56,6 +120,6 @@ public class Giant extends Monster {
@Override
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
@@ -120,10 +120,10 @@ index d1756353b9fc22f6e9b957a708073545ab3c941a..de7c2064b2c3876eebdee01908b39b1b
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a56f00a40b6db80f0164260914219afaed8f0cce..d2db6d8199f6c799bca1855d0405b0aa6ff8074a 100644
index 4d9f7a90928fd4a3dd514799df3661f4ceb2ca36..336b214230600b8b1d223c65470820e388f676d9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -472,6 +472,10 @@ public class PurpurWorldConfig {
@@ -511,6 +511,10 @@ public class PurpurWorldConfig {
public double giantMovementSpeed = 0.5D;
public double giantAttackDamage = 50.0D;
public double giantMaxHealth = 100.0D;
@@ -134,7 +134,7 @@ index a56f00a40b6db80f0164260914219afaed8f0cce..d2db6d8199f6c799bca1855d0405b0aa
private void giantSettings() {
giantRidable = getBoolean("mobs.giant.ridable", giantRidable);
giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater);
@@ -487,6 +491,10 @@ public class PurpurWorldConfig {
@@ -527,6 +531,10 @@ public class PurpurWorldConfig {
set("mobs.giant.attributes.max_health", oldValue);
}
giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth);

View File

@@ -28,10 +28,10 @@ index cd01b2f06b0dd34c3261d84beead96bba76cf825..2f8efdd72ee3ef12ce8223b73281f417
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d2db6d8199f6c799bca1855d0405b0aa6ff8074a..3c114e679811c0b3221665fdd1a26313f539191d 100644
index 336b214230600b8b1d223c65470820e388f676d9..6a5507be0f9a78855225437676865e15f06bcd9a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1284,6 +1284,7 @@ public class PurpurWorldConfig {
@@ -1416,6 +1416,7 @@ public class PurpurWorldConfig {
public double zombieHorseJumpStrengthMax = 1.0D;
public double zombieHorseMovementSpeedMin = 0.2D;
public double zombieHorseMovementSpeedMax = 0.2D;
@@ -39,7 +39,7 @@ index d2db6d8199f6c799bca1855d0405b0aa6ff8074a..3c114e679811c0b3221665fdd1a26313
private void zombieHorseSettings() {
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
@@ -1299,6 +1300,7 @@ public class PurpurWorldConfig {
@@ -1431,6 +1432,7 @@ public class PurpurWorldConfig {
zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax);
zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin);
zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Charged creeper naturally spawn
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index cee9afa518547afab1f2772b0352dcf05752df44..624b736f11341816c91f422cf6098ac0d19855b3 100644
index 415df99f90ce63f13a89cfd02ee594d280f01785..c2839fea7a3ed7365825b3886c1b9091b61b001e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -138,6 +138,14 @@ public class Creeper extends Monster implements PowerableMob {
@@ -143,6 +143,14 @@ public class Creeper extends Monster implements PowerableMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.creeperMaxHealth);
}
@@ -24,18 +24,18 @@ index cee9afa518547afab1f2772b0352dcf05752df44..624b736f11341816c91f422cf6098ac0
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3c114e679811c0b3221665fdd1a26313f539191d..425541175639632a3af9226b338dcce40320e2d6 100644
index 6a5507be0f9a78855225437676865e15f06bcd9a..a1d8065ef1ac0f065cf6bc030a8746e9418690aa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -294,6 +294,7 @@ public class PurpurWorldConfig {
public boolean creeperRidable = false;
@@ -313,6 +313,7 @@ public class PurpurWorldConfig {
public boolean creeperRidableInWater = false;
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
+ public double creeperChargedChance = 0.0D;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -303,6 +304,7 @@ public class PurpurWorldConfig {
@@ -323,6 +324,7 @@ public class PurpurWorldConfig {
set("mobs.creeper.attributes.max_health", oldValue);
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer
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 562262f4811d5748dd04a284f243024c059c8756..c1c2909728197dcb9137fb380ed210e7ee13e5d9 100644
index 16f5c4425cc6ff3044c1d076030775e88a3e0a2c..a34fcda0ef72689d014ca8fd0a9131a66f25fb61 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -428,7 +428,11 @@ public class Rabbit extends Animal {
@@ -433,7 +433,11 @@ public class Rabbit extends Animal {
if (!this.hasCustomName()) {
this.setCustomName(new TranslatableComponent(Util.makeDescriptionId("entity", Rabbit.KILLER_BUNNY)));
}
@@ -20,7 +20,7 @@ index 562262f4811d5748dd04a284f243024c059c8756..c1c2909728197dcb9137fb380ed210e7
this.entityData.set(Rabbit.DATA_TYPE_ID, rabbitType);
}
@@ -449,6 +453,16 @@ public class Rabbit extends Animal {
@@ -454,6 +458,16 @@ public class Rabbit extends Animal {
}
private int getRandomRabbitType(LevelAccessor world) {
@@ -38,19 +38,19 @@ index 562262f4811d5748dd04a284f243024c059c8756..c1c2909728197dcb9137fb380ed210e7
int i = this.random.nextInt(100);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 425541175639632a3af9226b338dcce40320e2d6..108548eac8f473e5dddce54268a2a10abb0e0c06 100644
index a1d8065ef1ac0f065cf6bc030a8746e9418690aa..91f892e411b9f6ce2a64138ed3d3576b43e482ea 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -864,6 +864,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidable = false;
@@ -945,6 +945,8 @@ public class PurpurWorldConfig {
public boolean rabbitRidableInWater = false;
public boolean rabbitControllable = true;
public double rabbitMaxHealth = 3.0D;
+ public double rabbitNaturalToast = 0.0D;
+ public double rabbitNaturalKiller = 0.0D;
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -873,6 +875,8 @@ public class PurpurWorldConfig {
@@ -955,6 +957,8 @@ public class PurpurWorldConfig {
set("mobs.rabbit.attributes.max_health", oldValue);
}
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Tulips change fox type
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 b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4dc332a004 100644
index 4754ea923d3bbee130ec8eecf8e51b99e561c3e6..12e2e84e6d4d4975ee2240e6255eb5cc2c17a733 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -35,6 +35,7 @@ import net.minecraft.tags.Tag;
@@ -24,7 +24,7 @@ index b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4d
import net.minecraft.world.level.pathfinder.BlockPathTypes;
import net.minecraft.world.phys.Vec3;
@@ -373,6 +375,11 @@ public class Fox extends Animal {
@@ -378,6 +380,11 @@ public class Fox extends Animal {
}
private void setTargetGoals() {
@@ -36,7 +36,7 @@ index b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4d
if (this.getFoxType() == Fox.Type.RED) {
this.targetSelector.addGoal(4, this.landTargetGoal);
this.targetSelector.addGoal(4, this.turtleEggTargetGoal);
@@ -405,6 +412,7 @@ public class Fox extends Animal {
@@ -410,6 +417,7 @@ public class Fox extends Animal {
public void setFoxType(Fox.Type type) {
this.entityData.set(Fox.DATA_TYPE_ID, type.getId());
@@ -44,7 +44,7 @@ index b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4d
}
List<UUID> getTrustedUUIDs() {
@@ -735,6 +743,29 @@ public class Fox extends Animal {
@@ -740,6 +748,29 @@ public class Fox extends Animal {
return this.getTrustedUUIDs().contains(uuid);
}
@@ -75,18 +75,18 @@ index b07b1302978b2a1212e094652e46ad2754fb1d6c..a2e56aadf75918d3b2c30b54ec53ba4d
// Paper start - Cancellable death event
protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 108548eac8f473e5dddce54268a2a10abb0e0c06..ca90e421b6f020eb92949ea3cbf4a8e5c31b3096 100644
index 91f892e411b9f6ce2a64138ed3d3576b43e482ea..53a6c64338a77f22ee2293fbb85522ad51a97276 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -442,6 +442,7 @@ public class PurpurWorldConfig {
public boolean foxRidable = false;
@@ -477,6 +477,7 @@ public class PurpurWorldConfig {
public boolean foxRidableInWater = false;
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
+ public boolean foxTypeChangesWithTulips = false;
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -451,6 +452,7 @@ public class PurpurWorldConfig {
@@ -487,6 +488,7 @@ public class PurpurWorldConfig {
set("mobs.fox.attributes.max_health", oldValue);
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Breedable Polar Bears
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 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c47412d2e85ed 100644
index b49ea0516488e203cae91f91a084ba6eb3eba9ea..1215d26bc383573e84f674c8d67768bfbe89da59 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -94,6 +94,27 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -99,6 +99,27 @@ public class PolarBear extends Animal implements NeutralMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.polarBearMaxHealth);
}
@@ -36,7 +36,7 @@ index 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c4741
// Purpur end
@Override
@@ -103,7 +124,7 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -108,7 +129,7 @@ public class PolarBear extends Animal implements NeutralMob {
@Override
public boolean isFood(ItemStack stack) {
@@ -45,7 +45,7 @@ index 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c4741
}
@Override
@@ -113,6 +134,12 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -118,6 +139,12 @@ public class PolarBear extends Animal implements NeutralMob {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PolarBear.PolarBearMeleeAttackGoal());
this.goalSelector.addGoal(1, new PolarBear.PolarBearPanicGoal());
@@ -59,19 +59,19 @@ index 69e495a93cd1519297dcd8ef4971cca61b80f201..0b5d4416ad4dc0a90cbd1826c45c4741
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ca90e421b6f020eb92949ea3cbf4a8e5c31b3096..d87f38f214b5f737e96ef6ab6b9298a3412f48b3 100644
index 53a6c64338a77f22ee2293fbb85522ad51a97276..ad0474ca08510f55cb20b2b5d11f7c4a7223b40e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -840,6 +840,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidable = false;
@@ -917,6 +917,8 @@ public class PurpurWorldConfig {
public boolean polarBearRidableInWater = false;
public boolean polarBearControllable = true;
public double polarBearMaxHealth = 30.0D;
+ public String polarBearBreedableItemString = "";
+ public Item polarBearBreedableItem = null;
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -849,6 +851,9 @@ public class PurpurWorldConfig {
@@ -927,6 +929,9 @@ public class PurpurWorldConfig {
set("mobs.polar_bear.attributes.max_health", oldValue);
}
polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Chickens can retaliate
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 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608ee49d096e 100644
index 6f0a3e303d7b4d95302f477eef0d2590b89bef42..826ffd0bec67d1239edeaddc64e2805ac884311c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -66,6 +66,9 @@ public class Chicken extends Animal {
@@ -71,6 +71,9 @@ public class Chicken extends Animal {
@Override
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.chickenMaxHealth);
@@ -18,7 +18,7 @@ index 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608e
}
// Purpur end
@@ -73,13 +76,21 @@ public class Chicken extends Animal {
@@ -78,13 +81,21 @@ public class Chicken extends Animal {
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -41,7 +41,7 @@ index 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608e
}
@Override
@@ -88,7 +99,7 @@ public class Chicken extends Animal {
@@ -93,7 +104,7 @@ public class Chicken extends Animal {
}
public static AttributeSupplier.Builder createAttributes() {
@@ -51,18 +51,18 @@ index 419a774733ac3d562e636f2615005c953bbd87df..ca584a5a801d0909f4bdbaa8a635608e
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d87f38f214b5f737e96ef6ab6b9298a3412f48b3..7ce2825871386d63301f90179408e52a2e101275 100644
index ad0474ca08510f55cb20b2b5d11f7c4a7223b40e..62bb7fafb686170f8ae6d2f7c7b10d04365e433c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -254,6 +254,7 @@ public class PurpurWorldConfig {
public boolean chickenRidable = false;
@@ -267,6 +267,7 @@ public class PurpurWorldConfig {
public boolean chickenRidableInWater = false;
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
+ public boolean chickenRetaliate = false;
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -263,6 +264,7 @@ public class PurpurWorldConfig {
@@ -277,6 +278,7 @@ public class PurpurWorldConfig {
set("mobs.chicken.attributes.max_health", oldValue);
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);

View File

@@ -49,12 +49,12 @@ index 436f9cb45ff5b83f55b12f291bed355fa12a0655..0784f6a0aa39c8e49b009f53d91432ff
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cdb0cae8af965f57d6c5d128d2190f9c496ea9b7..9b3c77424a9c43d3e980ddc0d1c7bc5fc4c31020 100644
index 7ab9864662b1a3de509e43b2177272078a7f3882..38f4ac177823bd6317d778163ae924c4869e8a91 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -231,6 +231,9 @@ public class PurpurWorldConfig {
public boolean catRidable = false;
@@ -240,6 +240,9 @@ public class PurpurWorldConfig {
public boolean catRidableInWater = false;
public boolean catControllable = true;
public double catMaxHealth = 10.0D;
+ public int catSpawnDelay = 1200;
+ public int catSpawnSwampHutScanRange = 16;
@@ -62,7 +62,7 @@ index cdb0cae8af965f57d6c5d128d2190f9c496ea9b7..9b3c77424a9c43d3e980ddc0d1c7bc5f
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -240,6 +243,9 @@ public class PurpurWorldConfig {
@@ -250,6 +253,9 @@ public class PurpurWorldConfig {
set("mobs.cat.attributes.max_health", oldValue);
}
catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Cows eat mushrooms
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 d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632cd337e05 100644
index dd4d5e2e7cbfed18cf3b4664dbe08eaf9d95f61e..732c560383da3b8a270139758f29734d73b775be 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -1,6 +1,7 @@
@@ -24,7 +24,7 @@ index d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632
import net.minecraft.world.level.block.state.BlockState;
// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
@@ -63,6 +65,7 @@ public class Cow extends Animal {
@@ -68,6 +70,7 @@ public class Cow extends Animal {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
@@ -32,7 +32,7 @@ index d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT), false));
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
@@ -118,11 +121,80 @@ public class Cow extends Animal {
@@ -123,11 +126,80 @@ public class Cow extends Animal {
player.setItemInHand(hand, itemstack1);
return InteractionResult.sidedSuccess(this.level.isClientSide);
@@ -114,18 +114,18 @@ index d602597132b69c51c6da9115d0a2c9a8a1f39405..0db4dd5423508acb5214ed3205bb5632
public Cow getBreedOffspring(ServerLevel world, AgeableMob entity) {
return (Cow) EntityType.COW.create(world);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9b3c77424a9c43d3e980ddc0d1c7bc5fc4c31020..8314452a8739b32264e3793616d2f50f25d1c2a8 100644
index 38f4ac177823bd6317d778163ae924c4869e8a91..2108615ad64bac1e7b9d4950b9dd62407d16504a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -293,6 +293,7 @@ public class PurpurWorldConfig {
public boolean cowRidable = false;
@@ -310,6 +310,7 @@ public class PurpurWorldConfig {
public boolean cowRidableInWater = false;
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
+ public int cowFeedMushrooms = 0;
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -302,6 +303,7 @@ public class PurpurWorldConfig {
@@ -320,6 +321,7 @@ public class PurpurWorldConfig {
set("mobs.cow.attributes.max_health", oldValue);
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom
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 66f628a699e82d2c632dde4185a92f29b5c16312..ffe2f135c6e9396ff106ca7f889ca31290c4d30d 100644
index 94550588f4e40da3f43ecd227e044fcfafec6084..6784f73bf2c2dd9a71461c66199572a5af29aede 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -198,7 +198,13 @@ public class MushroomCow extends Cow implements Shearable {
@@ -203,7 +203,13 @@ public class MushroomCow extends Cow implements Shearable {
entitycow.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
entitycow.setHealth(this.getHealth());

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Pigs give saddle back
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 7313d6bd41a312a8f9352240f181543d7cccb378..f4ae6de32bc1d854c54da829e45ca2cd15090433 100644
index 62a1e63fb6ca80e165db46c4d03e28815196aaff..284f632fcce31f180742a131cc358288aba54807 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -172,6 +172,18 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
@@ -177,6 +177,18 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
if (!flag && this.isSaddled() && !this.isVehicle() && !player.isSecondaryUseActive()) {
if (!this.level.isClientSide) {
@@ -28,18 +28,18 @@ index 7313d6bd41a312a8f9352240f181543d7cccb378..f4ae6de32bc1d854c54da829e45ca2cd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8314452a8739b32264e3793616d2f50f25d1c2a8..341ea0d8d67e5028a8b9e6083119b8538d531c03 100644
index 2108615ad64bac1e7b9d4950b9dd62407d16504a..0d042476484fd6fd2e7ad98cb695e80be2e0a1d4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -799,6 +799,7 @@ public class PurpurWorldConfig {
public boolean pigRidable = false;
@@ -868,6 +868,7 @@ public class PurpurWorldConfig {
public boolean pigRidableInWater = false;
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
+ public boolean pigGiveSaddleBack = false;
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -808,6 +809,7 @@ public class PurpurWorldConfig {
@@ -878,6 +879,7 @@ public class PurpurWorldConfig {
set("mobs.pig.attributes.max_health", oldValue);
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index e194774b2ba7976565642534ceeca2079e23945e..a9c1b07f23c604d9364ccdee9478baf137af0816 100644
index d3e8058e2fc45368e816482df178aa533c6edc0c..921215712cba59273da4387b5b4b2f3f5c9da6e2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -187,6 +187,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -192,6 +192,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
}
return InteractionResult.sidedSuccess(this.level.isClientSide);
@@ -23,7 +23,7 @@ index e194774b2ba7976565642534ceeca2079e23945e..a9c1b07f23c604d9364ccdee9478baf1
} else {
return tryRide(player, hand); // Purpur
}
@@ -198,6 +206,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -203,6 +211,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
if (!this.level.isClientSide()) {
this.setPumpkin(false);
this.forceDrops = true; // CraftBukkit
@@ -32,11 +32,11 @@ index e194774b2ba7976565642534ceeca2079e23945e..a9c1b07f23c604d9364ccdee9478baf1
this.forceDrops = false; // CraftBukkit
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 341ea0d8d67e5028a8b9e6083119b8538d531c03..8a50904dead7fb0c15d97b2424493a1f3ce35ccf 100644
index 0d042476484fd6fd2e7ad98cb695e80be2e0a1d4..54c0fe906604b14314125ff35322f75c84c1ee7d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1034,6 +1034,8 @@ public class PurpurWorldConfig {
public boolean snowGolemRidableInWater = false;
@@ -1131,6 +1131,8 @@ public class PurpurWorldConfig {
public boolean snowGolemControllable = true;
public boolean snowGolemLeaveTrailWhenRidden = false;
public double snowGolemMaxHealth = 4.0D;
+ public boolean snowGolemDropsPumpkin = true;
@@ -44,7 +44,7 @@ index 341ea0d8d67e5028a8b9e6083119b8538d531c03..8a50904dead7fb0c15d97b2424493a1f
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1044,6 +1046,8 @@ public class PurpurWorldConfig {
@@ -1142,6 +1144,8 @@ public class PurpurWorldConfig {
set("mobs.snow_golem.attributes.max_health", oldValue);
}
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Ender dragon always drop full exp
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 73506ce90426bdfb8fbc08687c6e21de637fbd77..9d4dd8c460d1d69ab56e166e10fd7137ddc47603 100644
index 4e44be78614107932af183dae144a21b0b260c97..e6772a3c4cda03824ed6a34936e1639979e73a0e 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -709,7 +709,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -714,7 +714,7 @@ public class EnderDragon extends Mob implements Enemy {
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT);
short short0 = 500;
@@ -18,18 +18,18 @@ index 73506ce90426bdfb8fbc08687c6e21de637fbd77..9d4dd8c460d1d69ab56e166e10fd7137
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8a50904dead7fb0c15d97b2424493a1f3ce35ccf..149b3cf94e6e60007a91cb1653419aed7b88b388 100644
index 54c0fe906604b14314125ff35322f75c84c1ee7d..fa3ae133ed06e4b57a4bc3ea2a32b5f1aef2636b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -396,6 +396,7 @@ public class PurpurWorldConfig {
public boolean enderDragonRidableInWater = false;
public double enderDragonMaxY = 256D;
@@ -423,6 +423,7 @@ public class PurpurWorldConfig {
public boolean enderDragonControllable = true;
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
+ public boolean enderDragonAlwaysDropsFullExp = false;
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -410,6 +411,7 @@ public class PurpurWorldConfig {
@@ -438,6 +439,7 @@ public class PurpurWorldConfig {
set("mobs.ender_dragon.attributes.max_health", oldValue);
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add enderman and creeper griefing controls
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 624b736f11341816c91f422cf6098ac0d19855b3..bb32bc0989ebbdd7522fe5f70ae3e6414f909388 100644
index c2839fea7a3ed7365825b3886c1b9091b61b001e..956ec09ac0bc86608af1618be197e56e9055f82f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -349,7 +349,7 @@ public class Creeper extends Monster implements PowerableMob {
public void explodeCreeper() {
if (!this.level.isClientSide) {
@@ -18,10 +18,10 @@ index 624b736f11341816c91f422cf6098ac0d19855b3..bb32bc0989ebbdd7522fe5f70ae3e641
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 1cec7bb3efa1e3377f72489c090d3234123d3e26..434e51325cbfe4539470f9ec5164e8ebdd482748 100644
index 732fb89ab0405373a782eec9807507f0f3f08238..c7917051c7303ab5ffc38c2cab6fc1b2b39c9642 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -505,6 +505,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -510,6 +510,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
@@ -29,7 +29,7 @@ index 1cec7bb3efa1e3377f72489c090d3234123d3e26..434e51325cbfe4539470f9ec5164e8eb
return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0);
}
@@ -552,6 +553,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -557,6 +558,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
@@ -38,18 +38,18 @@ index 1cec7bb3efa1e3377f72489c090d3234123d3e26..434e51325cbfe4539470f9ec5164e8eb
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4b81cc5d43182fa117c2a5d720a89f17ddf7f39b..7952a21e91ab87da057e69eae260f1d892fa38e5 100644
index 725d29b3e79e45d95635b73c9ea783ff2a04ad39..ce46f2530aad6f2fb96618b101f5dfdec974908e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -391,6 +391,7 @@ public class PurpurWorldConfig {
public boolean creeperRidableInWater = false;
@@ -410,6 +410,7 @@ public class PurpurWorldConfig {
public boolean creeperControllable = true;
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
+ public boolean creeperAllowGriefing = true;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -401,6 +402,7 @@ public class PurpurWorldConfig {
@@ -421,6 +422,7 @@ public class PurpurWorldConfig {
}
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
@@ -57,15 +57,15 @@ index 4b81cc5d43182fa117c2a5d720a89f17ddf7f39b..7952a21e91ab87da057e69eae260f1d8
}
public boolean dolphinRidable = false;
@@ -498,6 +500,7 @@ public class PurpurWorldConfig {
public boolean endermanRidable = false;
@@ -527,6 +529,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = false;
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
+ public boolean endermanAllowGriefing = true;
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -507,6 +510,7 @@ public class PurpurWorldConfig {
@@ -537,6 +540,7 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max_health", oldValue);
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);

View File

@@ -30,10 +30,10 @@ index bd283f71cb05ffbe1fed39afb41ae54dc52ec297..d7ebbd785d89fc5c1fec1a020a259a94
// CraftBukkit start
private CraftMerchant craftMerchant;
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 783cdc4949549725c884cdc0edff485936c77de3..5264f4dea9901fa702bdd6fb7855385bcfe53b64 100644
index 3ec933905f247e23c4c13b21dbf6fe4018583c5d..a245a795b6161ffb249adcad1e5bdd7ed619e539 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -169,6 +169,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -174,6 +174,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
@@ -42,10 +42,10 @@ index 783cdc4949549725c884cdc0edff485936c77de3..5264f4dea9901fa702bdd6fb7855385b
@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 0bcfece84ac11f04671ed38a99b31da9f8b03858..2f0bcf917af26fb7628bda134b650a8b296091ea 100644
index ab7beb6ddccf9e392aa791fee9280af814695259..24ebba702842de390c026a7a5172dbcfae16fb91 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,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -109,6 +109,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,10 +54,10 @@ index 0bcfece84ac11f04671ed38a99b31da9f8b03858..2f0bcf917af26fb7628bda134b650a8b
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 7952a21e91ab87da057e69eae260f1d892fa38e5..627a655c4d988c7634817ed08a3b92b08fc6fd2a 100644
index ce46f2530aad6f2fb96618b101f5dfdec974908e..11e9eeeb1ef515ea65701629f61b2a74c5986412 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1264,6 +1264,7 @@ public class PurpurWorldConfig {
@@ -1379,6 +1379,7 @@ public class PurpurWorldConfig {
public double villagerMaxHealth = 20.0D;
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
@@ -65,7 +65,7 @@ index 7952a21e91ab87da057e69eae260f1d892fa38e5..627a655c4d988c7634817ed08a3b92b0
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1275,6 +1276,7 @@ public class PurpurWorldConfig {
@@ -1391,6 +1392,7 @@ public class PurpurWorldConfig {
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
@@ -73,15 +73,15 @@ index 7952a21e91ab87da057e69eae260f1d892fa38e5..627a655c4d988c7634817ed08a3b92b0
}
public boolean vindicatorRidable = false;
@@ -1294,6 +1296,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidable = false;
@@ -1413,6 +1415,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidableInWater = false;
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
+ public boolean wanderingTraderFollowEmeraldBlock = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1303,6 +1306,7 @@ public class PurpurWorldConfig {
@@ -1423,6 +1426,7 @@ public class PurpurWorldConfig {
set("mobs.wandering_trader.attributes.max_health", oldValue);
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index cbb2f643c619c80d3bebcf1a8f066a87fc52d274..1b1323ef9aaaede71a73a5a817ef57f14756991c 100644
index dcf788de63b819abc668cc6deba974af26a41f2e..0b7e937b821b4e357cd2e726f5c5e542335cdee0 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1242,6 +1242,7 @@ public abstract class Mob extends LivingEntity {
@@ -1240,6 +1240,7 @@ public abstract class Mob extends LivingEntity {
if (!this.isAlive()) {
return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) {
@@ -17,10 +17,10 @@ index cbb2f643c619c80d3bebcf1a8f066a87fc52d274..1b1323ef9aaaede71a73a5a817ef57f1
// Paper start - drop leash variable
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, !player.getAbilities().instabuild);
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 5264f4dea9901fa702bdd6fb7855385bcfe53b64..c6596547c23365b2f7028f3764dbd0b5571f898c 100644
index a245a795b6161ffb249adcad1e5bdd7ed619e539..f4d79bd45ad262c92648cebbf3a5cfcd0b826c3e 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -176,6 +176,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -181,6 +181,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.villagerMaxHealth);
}
@@ -33,10 +33,10 @@ index 5264f4dea9901fa702bdd6fb7855385bcfe53b64..c6596547c23365b2f7028f3764dbd0b5
@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 2f0bcf917af26fb7628bda134b650a8b296091ea..c5dbb1c8210b71f7d9d91089cb139f65605573a8 100644
index 24ebba702842de390c026a7a5172dbcfae16fb91..00a19fc46b4ffecfcfb591a17c7c3608f014d7c8 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -82,6 +82,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -87,6 +87,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
public void initAttributes() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.wanderingTraderMaxHealth);
}
@@ -49,10 +49,10 @@ index 2f0bcf917af26fb7628bda134b650a8b296091ea..c5dbb1c8210b71f7d9d91089cb139f65
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 627a655c4d988c7634817ed08a3b92b08fc6fd2a..bfffa9db556a3518b600052c2f42b922f760cea2 100644
index 11e9eeeb1ef515ea65701629f61b2a74c5986412..9cab405a67c76e920754d0ba10978cf5476f1b82 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1265,6 +1265,7 @@ public class PurpurWorldConfig {
@@ -1380,6 +1380,7 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
@@ -60,7 +60,7 @@ index 627a655c4d988c7634817ed08a3b92b08fc6fd2a..bfffa9db556a3518b600052c2f42b922
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1277,6 +1278,7 @@ public class PurpurWorldConfig {
@@ -1393,6 +1394,7 @@ public class PurpurWorldConfig {
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
@@ -68,15 +68,15 @@ index 627a655c4d988c7634817ed08a3b92b08fc6fd2a..bfffa9db556a3518b600052c2f42b922
}
public boolean vindicatorRidable = false;
@@ -1297,6 +1299,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderRidableInWater = false;
@@ -1416,6 +1418,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderControllable = true;
public double wanderingTraderMaxHealth = 20.0D;
public boolean wanderingTraderFollowEmeraldBlock = false;
+ public boolean wanderingTraderCanBeLeashed = false;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1307,6 +1310,7 @@ public class PurpurWorldConfig {
@@ -1427,6 +1430,7 @@ public class PurpurWorldConfig {
}
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);

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 c6596547c23365b2f7028f3764dbd0b5571f898c..fbed51cacb1963b10946056a42fa6878e88a31a9 100644
index f4d79bd45ad262c92648cebbf3a5cfcd0b826c3e..fedf1a178b27da8e38af9b2e741b76de5d96ed89 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1045,6 +1045,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1050,6 +1050,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Nullable
private IronGolem trySpawnGolem(ServerLevel world) {
@@ -18,10 +18,10 @@ index c6596547c23365b2f7028f3764dbd0b5571f898c..fbed51cacb1963b10946056a42fa6878
for (int i = 0; i < 10; ++i) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bfffa9db556a3518b600052c2f42b922f760cea2..72a8eed3b7debcd3f87308579aee58c0ca4b3070 100644
index 9cab405a67c76e920754d0ba10978cf5476f1b82..39b47c37523950e9282b8db9e028795ee48f1155 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1266,6 +1266,8 @@ public class PurpurWorldConfig {
@@ -1381,6 +1381,8 @@ public class PurpurWorldConfig {
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
@@ -30,7 +30,7 @@ index bfffa9db556a3518b600052c2f42b922f760cea2..72a8eed3b7debcd3f87308579aee58c0
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1279,6 +1281,8 @@ public class PurpurWorldConfig {
@@ -1395,6 +1397,8 @@ public class PurpurWorldConfig {
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 347a30897d82b6b6c789e8f207ed1a98c09f5ed3..0ff2b5c23c904826098af23f17e95aba790ef3de 100644
index b7008875e7a105ed9011425fe0c2f64817f5d0a8..0c274d82f9ddcfa7ddadf63fdc1324430b8ee040 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4418,5 +4418,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -4422,5 +4422,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
public boolean processClick(InteractionHand hand) {
return false;
}
@@ -19,10 +19,10 @@ index 347a30897d82b6b6c789e8f207ed1a98c09f5ed3..0ff2b5c23c904826098af23f17e95aba
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 19f48278c5c8f9640683d61b9555074e140fa2ab..9a0a5da86e0502382cb538d6abea8e425e40dddc 100644
index 8480ebae938abd4f11ad82fd11e3a5ad405aa180..9e6b44da2098b11b204d45a0f44287d842b5f792 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -204,6 +204,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -209,6 +209,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
// do not hit rider
return target != rider && super.canHitEntity(target);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1b1323ef9aaaede71a73a5a817ef57f14756991c..79d258458f5ad997a7e88af6c616d1b677d84581 100644
index 0b7e937b821b4e357cd2e726f5c5e542335cdee0..68858cb7376c8c030a1e4039e76c296894168ce3 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
@@ -16,7 +16,7 @@ index 1b1323ef9aaaede71a73a5a817ef57f14756991c..79d258458f5ad997a7e88af6c616d1b6
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
@@ -1098,6 +1099,12 @@ public abstract class Mob extends LivingEntity {
@@ -1096,6 +1097,12 @@ public abstract class Mob extends LivingEntity {
}
@@ -43,7 +43,7 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53
// CraftBukkit start
Level world = pointer.getLevel();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0e08661ece83d8d3ab4cc26a9da30aa94dce1eb2..ffd4ebfb93266f18a456d691eb7c7428706fadaa 100644
index 6c0f9f8f83cc5bbdad319ab608faf1320e1a7081..7d5e570b5537960532e7b6babfd1f7ac421a3854 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -227,6 +227,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable jockey options
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 42ce331da58b749c17ece22c2ca9986a96c59438..54028f6c708e78e71b6db84898b9a6b30759023c 100644
index 0217fb932379e5789dce932b6af90f1e97fb95de..dac2407cc170ed59d09e3969e432e3b5aaa48a66 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -89,6 +89,21 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -94,6 +94,21 @@ public class Drowned extends Zombie implements RangedAttackMob {
protected void randomizeReinforcementsChance() {
this.getAttribute(Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level.purpurConfig.drownedSpawnReinforcements);
}
@@ -31,10 +31,10 @@ index 42ce331da58b749c17ece22c2ca9986a96c59438..54028f6c708e78e71b6db84898b9a6b3
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index 81a3f6c1774b187be96b412dae44be623ce7f6cb..7bb8ef0bb2de9a0b0d5048f8a4089835c41de568 100644
index ff84c706d42bc6859faaa9302ba688f43ddcb537..640c75c2cf7ec1f1bc514d29ac1f929c526e0caa 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -42,6 +42,21 @@ public class Husk extends Zombie {
@@ -47,6 +47,21 @@ public class Husk extends Zombie {
protected void randomizeReinforcementsChance() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level.purpurConfig.huskSpawnReinforcements);
}
@@ -57,10 +57,10 @@ index 81a3f6c1774b187be96b412dae44be623ce7f6cb..7bb8ef0bb2de9a0b0d5048f8a4089835
public static boolean checkHuskSpawnRules(EntityType<Husk> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 589ebb2f962c957903c12fc1a5304604f0433441..c6ecf05dedeef70fb4aad55c6c8455fb7b69ab46 100644
index 6943933ef0e97f31fbbcedee4ff469bc6e7e49c0..f1056d9174e19266990e54a04b3f99f2ea46beb1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -119,6 +119,18 @@ public class Zombie extends Monster {
@@ -124,6 +124,18 @@ public class Zombie extends Monster {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.drownedMaxHealth);
}
@@ -79,7 +79,7 @@ index 589ebb2f962c957903c12fc1a5304604f0433441..c6ecf05dedeef70fb4aad55c6c8455fb
// Purpur end
@Override
@@ -530,19 +542,20 @@ public class Zombie extends Monster {
@@ -535,19 +547,20 @@ public class Zombie extends Monster {
if (object instanceof Zombie.ZombieGroupData) {
Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object;
@@ -106,7 +106,7 @@ index 589ebb2f962c957903c12fc1a5304604f0433441..c6ecf05dedeef70fb4aad55c6c8455fb
Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level);
entitychicken1.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F);
@@ -550,6 +563,7 @@ public class Zombie extends Monster {
@@ -555,6 +568,7 @@ public class Zombie extends Monster {
entitychicken1.setChickenJockey(true);
this.startRiding(entitychicken1);
world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit
@@ -115,10 +115,10 @@ index 589ebb2f962c957903c12fc1a5304604f0433441..c6ecf05dedeef70fb4aad55c6c8455fb
}
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 2c93f08b0bb07b90512c317b5583d25c6ea05d82..eb8dc173468f205c7b47915942890fe711e10650 100644
index 6309a40ce0d349a6e278d6584b056dc644a358ba..cad1a9be238aa62b4eb0ec02d4155d15c0cc5378 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -95,6 +95,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -100,6 +100,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
protected void randomizeReinforcementsChance() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SPAWN_REINFORCEMENTS_CHANCE).setBaseValue(this.random.nextDouble() * this.level.purpurConfig.zombieVillagerSpawnReinforcements);
}
@@ -141,10 +141,10 @@ index 2c93f08b0bb07b90512c317b5583d25c6ea05d82..eb8dc173468f205c7b47915942890fe7
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index f30b36b3f1153e1cbd9b8242909d9ba8c995df1d..76f1bbec2b8ebe037de65ee5ec718e17a6081c13 100644
index e743fb4de0647088d06ec53291496e0d2f44fe44..e2192c45eba111a62dded3731dcdeacc6168710c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -74,6 +74,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -79,6 +79,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.zombifiedPiglinMaxHealth);
}
@@ -167,11 +167,11 @@ index f30b36b3f1153e1cbd9b8242909d9ba8c995df1d..76f1bbec2b8ebe037de65ee5ec718e17
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a16775d93 100644
index 7dd9e436b50019bb16a61314cf6798b6a5b2580b..9b87f29de86fe2b312622082705709479433f357 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -542,6 +542,9 @@ public class PurpurWorldConfig {
public boolean drownedRidableInWater = false;
@@ -565,6 +565,9 @@ public class PurpurWorldConfig {
public boolean drownedControllable = true;
public double drownedMaxHealth = 20.0D;
public double drownedSpawnReinforcements = 0.1D;
+ public boolean drownedJockeyOnlyBaby = true;
@@ -180,7 +180,7 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -552,6 +555,9 @@ public class PurpurWorldConfig {
@@ -576,6 +579,9 @@ public class PurpurWorldConfig {
}
drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth);
drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements);
@@ -190,8 +190,8 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
}
public boolean elderGuardianRidable = false;
@@ -764,6 +770,9 @@ public class PurpurWorldConfig {
public boolean huskRidableInWater = false;
@@ -813,6 +819,9 @@ public class PurpurWorldConfig {
public boolean huskControllable = true;
public double huskMaxHealth = 20.0D;
public double huskSpawnReinforcements = 0.1D;
+ public boolean huskJockeyOnlyBaby = true;
@@ -200,7 +200,7 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -774,6 +783,9 @@ public class PurpurWorldConfig {
@@ -824,6 +833,9 @@ public class PurpurWorldConfig {
}
huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth);
huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements);
@@ -210,8 +210,8 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
}
public boolean illusionerRidable = false;
@@ -1488,6 +1500,9 @@ public class PurpurWorldConfig {
public boolean zombieRidableInWater = false;
@@ -1619,6 +1631,9 @@ public class PurpurWorldConfig {
public boolean zombieControllable = true;
public double zombieMaxHealth = 20.0D;
public double zombieSpawnReinforcements = 0.1D;
+ public boolean zombieJockeyOnlyBaby = true;
@@ -220,7 +220,7 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1498,6 +1513,9 @@ public class PurpurWorldConfig {
@@ -1630,6 +1645,9 @@ public class PurpurWorldConfig {
}
zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth);
zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
@@ -230,8 +230,8 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
}
public boolean zombieHorseRidableInWater = false;
@@ -1531,6 +1549,9 @@ public class PurpurWorldConfig {
public boolean zombieVillagerRidableInWater = false;
@@ -1664,6 +1682,9 @@ public class PurpurWorldConfig {
public boolean zombieVillagerControllable = true;
public double zombieVillagerMaxHealth = 20.0D;
public double zombieVillagerSpawnReinforcements = 0.1D;
+ public boolean zombieVillagerJockeyOnlyBaby = true;
@@ -240,7 +240,7 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -1541,12 +1562,18 @@ public class PurpurWorldConfig {
@@ -1675,6 +1696,9 @@ public class PurpurWorldConfig {
}
zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth);
zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements);
@@ -250,7 +250,8 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
}
public boolean zombifiedPiglinRidable = false;
public boolean zombifiedPiglinRidableInWater = false;
@@ -1682,6 +1706,9 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinControllable = true;
public double zombifiedPiglinMaxHealth = 20.0D;
public double zombifiedPiglinSpawnReinforcements = 0.0D;
+ public boolean zombifiedPiglinJockeyOnlyBaby = true;
@@ -259,7 +260,7 @@ index 703a41c7c90124d8b8aa925a3f494ca61a268a92..982646423785bfb98be99044a8f4c59a
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1557,5 +1584,8 @@ public class PurpurWorldConfig {
@@ -1693,5 +1720,8 @@ public class PurpurWorldConfig {
}
zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth);
zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements);

View File

@@ -73,7 +73,7 @@ index d8c4f36ae0e65c6d0398fac80c93b78646bdf6a4..f8863cabad1bd0c3c2c62b8e17612d95
@Override
protected void addAdditionalSaveData(CompoundTag nbt) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac147afc563 100644
index c6fc7042386c98debf9b6e4614aca99d391d7e38..7361634f6eb65be5f04c00686be30e3e12d1bc0e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -84,7 +84,7 @@ index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac1
public Phantom(EntityType<? extends Phantom> type, Level world) {
super(type, world);
@@ -126,6 +127,24 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -131,6 +132,24 @@ public class Phantom extends FlyingMob implements Enemy {
}
return value;
}
@@ -109,7 +109,7 @@ index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac1
// Purpur end
@Override
@@ -140,11 +159,17 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -145,11 +164,17 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
protected void registerGoals() {
@@ -132,7 +132,7 @@ index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac1
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
}
@@ -337,6 +362,124 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -342,6 +367,124 @@ public class Phantom extends FlyingMob implements Enemy {
private AttackPhase() {}
}
@@ -258,10 +258,10 @@ index 59289140f51ea63e81ebebc97d5a54fc2b0e1914..61b40d0b7dbb956fa25271c6f6768ac1
private float speed = 0.1F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 982646423785bfb98be99044a8f4c59a16775d93..9627fc7c186da877be610d0d8464b3f557eb400d 100644
index 9b87f29de86fe2b312622082705709479433f357..d1057f80a7816dc553ddb9b825e65f35764514a0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -964,6 +964,9 @@ public class PurpurWorldConfig {
@@ -1031,6 +1031,9 @@ public class PurpurWorldConfig {
public String phantomAttackDamage = "6 + size";
public Map<Integer, Double> phantomMaxHealthCache = new HashMap<>();
public Map<Integer, Double> phantomAttackDamageCache = new HashMap<>();
@@ -271,7 +271,7 @@ index 982646423785bfb98be99044a8f4c59a16775d93..9627fc7c186da877be610d0d8464b3f5
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -984,6 +987,9 @@ public class PurpurWorldConfig {
@@ -1052,6 +1055,9 @@ public class PurpurWorldConfig {
phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage);
phantomMaxHealthCache.clear();
phantomAttackDamageCache.clear();

View File

@@ -48,10 +48,10 @@ index 1e21d6cf2f03219fb2b7217c9a72bdd83c2146f7..dad5d3c754395b39e96be1e35a99c8bf
for (int l = 0; l < k; ++l) {
// Paper start
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9627fc7c186da877be610d0d8464b3f557eb400d..d6744436fbac28e3e6486a6d36f20e20a7d99d3e 100644
index d1057f80a7816dc553ddb9b825e65f35764514a0..47c6d378380ff9345be4bd6dd06fe52e3e23162d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -967,6 +967,18 @@ public class PurpurWorldConfig {
@@ -1034,6 +1034,18 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@@ -70,7 +70,7 @@ index 9627fc7c186da877be610d0d8464b3f557eb400d..d6744436fbac28e3e6486a6d36f20e20
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -990,6 +1002,18 @@ public class PurpurWorldConfig {
@@ -1058,6 +1070,18 @@ public class PurpurWorldConfig {
phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius);
phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage);
phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9514a4aff 100644
index 68858cb7376c8c030a1e4039e76c296894168ce3..83fb51ad723f06d002f31bd1caefb778f057a5ad 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity {
@@ -16,7 +16,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
public boolean aware = true; // CraftBukkit
protected Mob(EntityType<? extends Mob> type, Level world) {
@@ -288,6 +289,7 @@ public abstract class Mob extends LivingEntity {
@@ -286,6 +287,7 @@ public abstract class Mob extends LivingEntity {
entityliving = null;
}
}
@@ -24,7 +24,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
this.target = entityliving;
return true;
// CraftBukkit end
@@ -332,9 +334,35 @@ public abstract class Mob extends LivingEntity {
@@ -330,9 +332,35 @@ public abstract class Mob extends LivingEntity {
this.playAmbientSound();
}
@@ -60,7 +60,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
@Override
protected void playHurtSound(DamageSource source) {
this.resetAmbientSoundTime();
@@ -518,6 +546,7 @@ public abstract class Mob extends LivingEntity {
@@ -516,6 +544,7 @@ public abstract class Mob extends LivingEntity {
}
nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit
@@ -68,7 +68,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
}
@Override
@@ -588,6 +617,11 @@ public abstract class Mob extends LivingEntity {
@@ -586,6 +615,11 @@ public abstract class Mob extends LivingEntity {
this.aware = nbt.getBoolean("Bukkit.Aware");
}
// CraftBukkit end
@@ -80,7 +80,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
}
@Override
@@ -1613,6 +1647,7 @@ public abstract class Mob extends LivingEntity {
@@ -1611,6 +1645,7 @@ public abstract class Mob extends LivingEntity {
this.setLastHurtMob(target);
}
@@ -89,7 +89,7 @@ index 79d258458f5ad997a7e88af6c616d1b677d84581..1ef0de7544f26faf69dc0395da8e09f9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a38a4bdba8c87bfce09487714b58082f74432b9d..9a7cbf1473c00af0681865f14455f6531036f4cd 100644
index d6f6cf7e17d9cd5b1398aab8e2b9b6df75fea02e..d25af1733601d26b6d2173837a0a5948ae01a6d4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -124,6 +124,11 @@ public class PurpurWorldConfig {

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Squid EAR immunity
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 337e6f2515591c690a2a18055c6dbdb006f0aea2..e31ed42038f800125f2129b1dbfafa86eacbf1b9 100644
index a9a3f13a64cd7d9152f65285a5f5f48f5a31b7a3..e480e61419a9b83e98fcd0ba8a949c20a241c949 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1311,6 +1311,7 @@ public class PurpurWorldConfig {
@@ -1410,6 +1410,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
+ public boolean squidImmuneToEAR = true;
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1319,6 +1320,7 @@ public class PurpurWorldConfig {
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1419,6 +1420,7 @@ public class PurpurWorldConfig {
set("mobs.squid.attributes.max_health", oldValue);
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 61b40d0b7dbb956fa25271c6f6768ac147afc563..72a790e6aba656e8817a84d2c729ce722e9a43ef 100644
index 7361634f6eb65be5f04c00686be30e3e12d1bc0e..20ff9c65f89635a4b91d334775b3ac380b5ccbac 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -16,16 +16,16 @@ index 61b40d0b7dbb956fa25271c6f6768ac147afc563..72a790e6aba656e8817a84d2c729ce72
public Phantom(EntityType<? extends Phantom> type, Level world) {
super(type, world);
@@ -242,7 +243,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -247,7 +248,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public void aiStep() {
- if (this.isAlive() && getRider() == null && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning // Purpur
+ if (this.isAlive() && getRider() == null && (((shouldBurnInDay && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
- if (this.isAlive() && (getRider() == null || !this.isControllable()) && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning // Purpur
+ if (this.isAlive() && (getRider() == null || !this.isControllable()) && (((shouldBurnInDay && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
this.setSecondsOnFire(8);
}
@@ -646,6 +647,12 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -651,6 +652,12 @@ public class Phantom extends FlyingMob implements Enemy {
return false;
} else if (!entityliving.isAlive()) {
return false;
@@ -38,7 +38,7 @@ index 61b40d0b7dbb956fa25271c6f6768ac147afc563..72a790e6aba656e8817a84d2c729ce72
} else {
if (entityliving instanceof Player) {
Player entityhuman = (Player) entityliving;
@@ -791,6 +798,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -796,6 +803,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.nextScanTick = reducedTickDelay(60);
List<Player> list = Phantom.this.level.getNearbyPlayers(this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0D, 64.0D, 16.0D));
@@ -47,10 +47,10 @@ index 61b40d0b7dbb956fa25271c6f6768ac147afc563..72a790e6aba656e8817a84d2c729ce72
list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error
Iterator iterator = list.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e31ed42038f800125f2129b1dbfafa86eacbf1b9..e2aa7524253adecd6536530d93f68e75482af97f 100644
index e480e61419a9b83e98fcd0ba8a949c20a241c949..249368f0808871eafa8b3dfd48f631a8d55a74f0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1018,6 +1018,9 @@ public class PurpurWorldConfig {
@@ -1085,6 +1085,9 @@ public class PurpurWorldConfig {
public int phantomSpawnOverheadRadius = 10;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@@ -60,7 +60,7 @@ index e31ed42038f800125f2129b1dbfafa86eacbf1b9..e2aa7524253adecd6536530d93f68e75
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1053,6 +1056,9 @@ public class PurpurWorldConfig {
@@ -1121,6 +1124,9 @@ public class PurpurWorldConfig {
phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius);
phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt);
phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt);

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 fbed51cacb1963b10946056a42fa6878e88a31a9..3d755f2c6253e83d0d9fb1348f066f4f7fe1d4be 100644
index fedf1a178b27da8e38af9b2e741b76de5d96ed89..14ba8dcf9392e3bfdb92663f98455cb9c0f44c10 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -767,7 +767,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -772,7 +772,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public boolean canBreed() {
@@ -18,10 +18,10 @@ index fbed51cacb1963b10946056a42fa6878e88a31a9..3d755f2c6253e83d0d9fb1348f066f4f
private boolean hungry() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e2aa7524253adecd6536530d93f68e75482af97f..ce4d44d130ee3ed5b6925090ffa2b2d8da9c221b 100644
index 249368f0808871eafa8b3dfd48f631a8d55a74f0..2784edf4fb34f90e46ca693427e8861e15fb97bc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1448,6 +1448,7 @@ public class PurpurWorldConfig {
@@ -1563,6 +1563,7 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -29,7 +29,7 @@ index e2aa7524253adecd6536530d93f68e75482af97f..ce4d44d130ee3ed5b6925090ffa2b2d8
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1463,6 +1464,7 @@ public class PurpurWorldConfig {
@@ -1579,6 +1580,7 @@ public class PurpurWorldConfig {
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add vindicator johnny spawn chance
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index c92c948989543248b22db0830a3cb1b6f7940d60..9db267a9a52aa1bde4423711bd0ac6b9949de61b 100644
index ff62f5ed29a826c4dd53eb6fe04f5aa27de62619..acd4e282841708d7ef0145757899e355a6410a4a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -7,6 +7,7 @@ import java.util.function.Predicate;
@@ -16,7 +16,7 @@ index c92c948989543248b22db0830a3cb1b6f7940d60..9db267a9a52aa1bde4423711bd0ac6b9
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
@@ -146,6 +147,12 @@ public class Vindicator extends AbstractIllager {
@@ -151,6 +152,12 @@ public class Vindicator extends AbstractIllager {
((GroundPathNavigation) this.getNavigation()).setCanOpenDoors(true);
this.populateDefaultEquipmentSlots(difficulty);
this.populateDefaultEquipmentEnchantments(difficulty);
@@ -30,18 +30,18 @@ index c92c948989543248b22db0830a3cb1b6f7940d60..9db267a9a52aa1bde4423711bd0ac6b9
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c28ed3ae75695d5f4052726a2acf526dde7cd261..ccdbeca6fa964fc2d1b4b25bdd4a218ea13a92df 100644
index 7159461ec4b4563d3fd15c12f7900b70f643592f..48f8f0447d4612c15b3a9c53b74c593a608bc352 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1477,6 +1477,7 @@ public class PurpurWorldConfig {
public boolean vindicatorRidable = false;
@@ -1594,6 +1594,7 @@ public class PurpurWorldConfig {
public boolean vindicatorRidableInWater = false;
public boolean vindicatorControllable = true;
public double vindicatorMaxHealth = 24.0D;
+ public double vindicatorJohnnySpawnChance = 0D;
private void vindicatorSettings() {
vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable);
vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater);
@@ -1486,6 +1487,7 @@ public class PurpurWorldConfig {
@@ -1604,6 +1605,7 @@ public class PurpurWorldConfig {
set("mobs.vindicator.attributes.max_health", oldValue);
}
vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to disable dolphin treasure searching
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index 16f32f0a58b090174f3d8b38c583adbcca58c9e4..ea0fb3b032a86223bfdee05a56baa15abfbe5d38 100644
index da30c9b0f49e714ff7c84c32f62ffeacaedb6aff..3b198ad456f666fa1819ac39bcdfc8c85a256708 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -477,6 +477,7 @@ public class Dolphin extends WaterAnimal {
@@ -482,6 +482,7 @@ public class Dolphin extends WaterAnimal {
@Override
public boolean canUse() {
@@ -17,18 +17,18 @@ index 16f32f0a58b090174f3d8b38c583adbcca58c9e4..ea0fb3b032a86223bfdee05a56baa15a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e636499f07581429e0bc42f6b9c1c80fb48cc71a..06c50a42e2acd17b6c89ac8428b25c5866e6127e 100644
index 6319654f2560a1d035d13b2a1ada30c91c4d9cdb..8d31e240e3d275e228c6d8c1107a609c3bf04729 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -554,6 +554,7 @@ public class PurpurWorldConfig {
@@ -575,6 +575,7 @@ public class PurpurWorldConfig {
public float dolphinSpitSpeed = 1.0F;
public float dolphinSpitDamage = 2.0F;
public double dolphinMaxHealth = 10.0D;
+ public boolean dolphinDisableTreasureSearching = false;
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
@@ -565,6 +566,7 @@ public class PurpurWorldConfig {
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -587,6 +588,7 @@ public class PurpurWorldConfig {
set("mobs.dolphin.attributes.max_health", oldValue);
}
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);

View File

@@ -19,13 +19,13 @@ index 4833e545545d9114a15f0bcc0d0a2a214183000f..fce7a9c1c1477d1b02a4adbe0bc5a5c9
private static <T extends Entity> EntityType<T> register(String id, EntityType.Builder type) { // CraftBukkit - decompile error
return (EntityType) Registry.register(Registry.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 434e51325cbfe4539470f9ec5164e8ebdd482748..37fe7d448ae40e67cc8c7c1856df3c8ac276f0be 100644
index c7917051c7303ab5ffc38c2cab6fc1b2b39c9642..83341eaa1162c311d6e1649fe9b6743597077e35 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -405,6 +405,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -410,6 +410,7 @@ public class EnderMan extends Monster implements NeutralMob {
if (this.isInvulnerableTo(source)) {
return false;
} else if (getRider() != null) { return super.hurt(source, amount); // Purpur - no teleporting on damage
} else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage
+ } else if (org.purpurmc.purpur.PurpurConfig.endermanShortHeight && source == DamageSource.IN_WALL) { return false; // Purpur - no suffocation damage if short height
} else if (source instanceof IndirectEntityDamageSource) {
Entity entity = source.getDirectEntity();

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index fda1d7f9b4bdfd12a531104ca8b571bd39e758f4..851edf3d77ccc887943a68ea6835d4c9bd4c16a9 100644
index 0c274d82f9ddcfa7ddadf63fdc1324430b8ee040..bf8cd06cc9d84930460d055b7f82de1bc7912803 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3914,6 +3914,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -22,10 +22,10 @@ index fda1d7f9b4bdfd12a531104ca8b571bd39e758f4..851edf3d77ccc887943a68ea6835d4c9
if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip
return false;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 501b082e36b30140eef9540b8b217b9d45309dff..55f94d28a536f5ceda00831e1b22c8db31c07c2f 100644
index 565276f556e2c7cf465b6bed53bdeac5ce4c4312..45533523c5eee0431e96c01de4a64f9f0b887a2e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -76,6 +76,12 @@ public class Squid extends WaterAnimal {
@@ -81,6 +81,12 @@ public class Squid extends WaterAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.squidMaxHealth);
}
@@ -54,18 +54,18 @@ index 68cc6f2a78a06293a29317fda72ab3ee79b3533a..cfb2e46b34b2982d6724f18214557fc8
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 06c50a42e2acd17b6c89ac8428b25c5866e6127e..bce10b6b23b563a95a16400d9ee80300fbb67939 100644
index 8d31e240e3d275e228c6d8c1107a609c3bf04729..b631a21ee4eb646d86532dd11784bd7c705eb3ee 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1334,6 +1334,7 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig {
public boolean squidControllable = true;
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
+ public double squidOffsetWaterCheck = 0.0D;
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1343,6 +1344,7 @@ public class PurpurWorldConfig {
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1443,6 +1444,7 @@ public class PurpurWorldConfig {
}
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing
Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often.
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 9a0a5da86e0502382cb538d6abea8e425e40dddc..93cc8dbf2ff435777a5edc11a834ca1b190638ab 100644
index 9e6b44da2098b11b204d45a0f44287d842b5f792..5bb5390ccec6826ead2198b413254dd1bd10f4b8 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -515,8 +515,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -520,8 +520,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
}
}
@@ -23,19 +23,19 @@ index 9a0a5da86e0502382cb538d6abea8e425e40dddc..93cc8dbf2ff435777a5edc11a834ca1b
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 e92a269a9340cd6b76cb7e13738ca46906675b2f..8ff90ee18ed8a6d6c5be991a5a0841383dd93f6c 100644
index f6d4be9b81b82e7ae46f7694b824a06b3f6272ed..2a226f91d7afe0489adb4dbe94d69e6fc8e6e4e4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1539,6 +1539,8 @@ public class PurpurWorldConfig {
public boolean witherRidableInWater = false;
public double witherMaxY = 256D;
@@ -1662,6 +1662,8 @@ public class PurpurWorldConfig {
public boolean witherControllable = true;
public double witherMaxY = 320D;
public double witherMaxHealth = 300.0D;
+ public float witherHealthRegenAmount = 1.0f;
+ public int witherHealthRegenDelay = 20;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1553,6 +1555,8 @@ public class PurpurWorldConfig {
@@ -1677,6 +1679,8 @@ public class PurpurWorldConfig {
set("mobs.wither.attributes.max_health", oldValue);
}
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);

View File

@@ -21,10 +21,10 @@ index 181abe014baba9ac51064c003381281a8fa43fe4..cfd1dcec3efcd4caf2431cbda99bc9f1
ignored.add("goal_selector_1");
ignored.add("goal_selector_2");
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 54028f6c708e78e71b6db84898b9a6b30759023c..02c8fd96d11e3a27b5fddb27d65fddffd157fb52 100644
index dac2407cc170ed59d09e3969e432e3b5aaa48a66..d49e0f8e7842e4f5fb9f97fc8ea760910a1edd52 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -116,7 +116,19 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -121,7 +121,19 @@ public class Drowned extends Zombie implements RangedAttackMob {
this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0D));
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, Drowned.class)).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget));
@@ -46,10 +46,10 @@ index 54028f6c708e78e71b6db84898b9a6b30759023c..02c8fd96d11e3a27b5fddb27d65fddff
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false));
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index c6ecf05dedeef70fb4aad55c6c8455fb7b69ab46..f2ff721fd7d1124e72f8cea4141769fb37f97b16 100644
index f1056d9174e19266990e54a04b3f99f2ea46beb1..b59894aaa9553bf78b98a6fce7fb624088389011 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -149,7 +149,19 @@ public class Zombie extends Monster {
@@ -154,7 +154,19 @@ public class Zombie extends Monster {
this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D));
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
@@ -71,10 +71,10 @@ index c6ecf05dedeef70fb4aad55c6c8455fb7b69ab46..f2ff721fd7d1124e72f8cea4141769fb
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 88fae3bed78da308a047aec1347d13017ebfd933..04a9739ef2339cc0f886162401b90a0ed337e431 100644
index 8847f78505aa4a9646a3d48a6c8b013bfff9c71f..f3a4634ccd0a92dfbd2991da0695f4cfb5259d1d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1660,6 +1660,7 @@ public class PurpurWorldConfig {
@@ -1791,6 +1791,7 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
@@ -82,7 +82,7 @@ index 88fae3bed78da308a047aec1347d13017ebfd933..04a9739ef2339cc0f886162401b90a0e
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1673,6 +1674,7 @@ public class PurpurWorldConfig {
@@ -1805,6 +1806,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

@@ -5,10 +5,10 @@ Subject: [PATCH] Flying squids! Oh my!
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index ec261673ac444fd5de9c8556cde5d7887098aee0..ca2bf36120ba09ed27ad7b1064431f9feffa3420 100644
index da00dcb474bec9ac8b8fc3ecf530fca154348059..60737807fd2861db6c4ffb215e23f724407c069a 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -38,6 +38,11 @@ public class GlowSquid extends Squid {
@@ -43,6 +43,11 @@ public class GlowSquid extends Squid {
public void initAttributes() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.glowSquidMaxHealth);
}
@@ -21,10 +21,10 @@ index ec261673ac444fd5de9c8556cde5d7887098aee0..ca2bf36120ba09ed27ad7b1064431f9f
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8408fb83c 100644
index 45533523c5eee0431e96c01de4a64f9f0b887a2e..8381937f208a30ca492a69470cf89b1b2621657f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -82,6 +82,15 @@ public class Squid extends WaterAnimal {
@@ -87,6 +87,15 @@ public class Squid extends WaterAnimal {
// Stops squids from floating just over the water
return super.getAxisForFluidCheck().offsetY(level.purpurConfig.squidOffsetWaterCheck);
}
@@ -40,7 +40,7 @@ index 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8
// Purpur end
@Override
@@ -156,6 +165,7 @@ public class Squid extends WaterAnimal {
@@ -161,6 +170,7 @@ public class Squid extends WaterAnimal {
}
if (this.isInWaterOrBubble()) {
@@ -48,7 +48,7 @@ index 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8
if (this.tentacleMovement < 3.1415927F) {
float f = this.tentacleMovement / 3.1415927F;
@@ -312,7 +322,7 @@ public class Squid extends WaterAnimal {
@@ -317,7 +327,7 @@ public class Squid extends WaterAnimal {
if (i > 100) {
this.squid.setMovementVector(0.0F, 0.0F, 0.0F);
@@ -58,30 +58,31 @@ index 55f94d28a536f5ceda00831e1b22c8db31c07c2f..d4e1e0117ce9105452679d64779086b8
float f1 = Mth.cos(f) * 0.2F;
float f2 = -0.1F + this.squid.getRandom().nextFloat() * 0.2F;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 04a9739ef2339cc0f886162401b90a0ed337e431..99f99096c773ddc14f4abe5a17ebe4c88d298c8d 100644
index f3a4634ccd0a92dfbd2991da0695f4cfb5259d1d..8e7a6bba0da7c9d9376ed4a0510255e58a07ed64 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -811,9 +811,11 @@ public class PurpurWorldConfig {
@@ -852,10 +852,12 @@ public class PurpurWorldConfig {
public boolean glowSquidRidable = false;
public boolean glowSquidControllable = true;
public double glowSquidMaxHealth = 10.0D;
+ public boolean glowSquidsCanFly = false;
private void glowSquidSettings() {
glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable);
glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable);
glowSquidMaxHealth = getDouble("mobs.glow_squid.attributes.max_health", glowSquidMaxHealth);
+ glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
}
public boolean goatRidable = false;
@@ -1389,6 +1391,7 @@ public class PurpurWorldConfig {
@@ -1488,6 +1490,7 @@ public class PurpurWorldConfig {
public double squidMaxHealth = 10.0D;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;
+ public boolean squidsCanFly = false;
private void squidSettings() {
squidRidable = getBoolean("mobs.squid.ridable", squidRidable);
if (PurpurConfig.version < 10) {
@@ -1399,6 +1402,7 @@ public class PurpurWorldConfig {
squidControllable = getBoolean("mobs.squid.controllable", squidControllable);
@@ -1499,6 +1502,7 @@ public class PurpurWorldConfig {
squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth);
squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR);
squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck);

View File

@@ -47,10 +47,10 @@ index b26d5482d89e28897bcc9dc8a15042a557727037..400db4ff64701e229ec208666a7acb1b
other.resetLove();
world.addFreshEntityWithPassengers(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
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 64ad501a6bce58f06b38ea2d758664c19b4d7996..b7d6d88aa9f60090b88ac35084b9810b6fef0cfa 100644
index 4fc7c9c2fd2b9c083bd08fb4da9355279a94d287..a7dce3d3a0266bacd1883bfe8b47af79defcd95b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -215,6 +215,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -220,6 +220,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.beeMaxHealth);
}
@@ -63,10 +63,10 @@ index 64ad501a6bce58f06b38ea2d758664c19b4d7996..b7d6d88aa9f60090b88ac35084b9810b
@Override
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 da496f1c3728cbe8aa009d2533f166cb6736d1b9..e9a165b7bb66dd4ae1c1befc67c671f45ec8271b 100644
index 3a8130f7bbf67a0426c8a2f4785c9865dc0159ce..dadea789949e65c79260f32de7d6e42ee679555e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -145,6 +145,11 @@ public class Cat extends TamableAnimal {
@@ -150,6 +150,11 @@ public class Cat extends TamableAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.catMaxHealth);
}
@@ -79,10 +79,10 @@ index da496f1c3728cbe8aa009d2533f166cb6736d1b9..e9a165b7bb66dd4ae1c1befc67c671f4
public ResourceLocation getResourceLocation() {
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 ca584a5a801d0909f4bdbaa8a635608ee49d096e..0b1ba6f25d13296fbcd6a2aee3b7ab5edbf4b22a 100644
index 826ffd0bec67d1239edeaddc64e2805ac884311c..1c05400d8638ca14060de1ce26f7cb151487f818 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -70,6 +70,11 @@ public class Chicken extends Animal {
@@ -75,6 +75,11 @@ public class Chicken extends Animal {
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(2.0D);
}
}
@@ -95,10 +95,10 @@ index ca584a5a801d0909f4bdbaa8a635608ee49d096e..0b1ba6f25d13296fbcd6a2aee3b7ab5e
@Override
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 0db4dd5423508acb5214ed3205bb5632cd337e05..2c838d71105d2b88934efd154c7ec69a7ba47681 100644
index 732c560383da3b8a270139758f29734d73b775be..b063a74327e51b3cd27427426b92ef687c59c94b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -57,6 +57,11 @@ public class Cow extends Animal {
@@ -62,6 +62,11 @@ public class Cow extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.cowMaxHealth);
}
@@ -111,10 +111,10 @@ index 0db4dd5423508acb5214ed3205bb5632cd337e05..2c838d71105d2b88934efd154c7ec69a
@Override
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 a2e56aadf75918d3b2c30b54ec53ba4dc332a004..f7f5a75f29a5092a7d8ee689cd3679d8eaac7c7d 100644
index 12e2e84e6d4d4975ee2240e6255eb5cc2c17a733..5fdea5a1e49f457a5094568854a50c3fb1059f81 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -177,6 +177,11 @@ public class Fox extends Animal {
@@ -182,6 +182,11 @@ public class Fox extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.foxMaxHealth);
}
@@ -126,7 +126,7 @@ index a2e56aadf75918d3b2c30b54ec53ba4dc332a004..f7f5a75f29a5092a7d8ee689cd3679d8
// Purpur end
@Override
@@ -960,8 +965,10 @@ public class Fox extends Animal {
@@ -965,8 +970,10 @@ public class Fox extends Animal {
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox);
}
@@ -140,10 +140,10 @@ index a2e56aadf75918d3b2c30b54ec53ba4dc332a004..f7f5a75f29a5092a7d8ee689cd3679d8
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 ffe2f135c6e9396ff106ca7f889ca31290c4d30d..8fb2f77571370c80dbafdf5c9a3c57c83a9fbd42 100644
index 6784f73bf2c2dd9a71461c66199572a5af29aede..ecc5a0c2331609954411c8239392ede20649ec2f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -80,6 +80,11 @@ public class MushroomCow extends Cow implements Shearable {
@@ -85,6 +85,11 @@ public class MushroomCow extends Cow implements Shearable {
public void initAttributes() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.mooshroomMaxHealth);
}
@@ -156,10 +156,10 @@ index ffe2f135c6e9396ff106ca7f889ca31290c4d30d..8fb2f77571370c80dbafdf5c9a3c57c8
@Override
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 ccb18fea0e03d08405b0fff5e9df5025f02cebf7..4bf4403cb65b8e1fee9c253c7932ad839a99c92e 100644
index 14897eea8446a257bbcb48cbcfd1828ab9ad0bec..d07b0a4a8cf532dd8066e111fab1a64d4b9fd739 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -84,6 +84,11 @@ public class Ocelot extends Animal {
@@ -89,6 +89,11 @@ public class Ocelot extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ocelotMaxHealth);
}
@@ -172,10 +172,10 @@ index ccb18fea0e03d08405b0fff5e9df5025f02cebf7..4bf4403cb65b8e1fee9c253c7932ad83
public boolean isTrusting() {
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 45a92265ac626ae401342e6a21b0ba271ba5b371..615784e3b53d43e2167d91bb41c26079998d7f47 100644
index 880093a2c547c49fe29aacef87320082dbd38168..67fa41c69756f234778127dd5a2ff159122da8d5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -132,6 +132,11 @@ public class Panda extends Animal {
@@ -137,6 +137,11 @@ public class Panda extends Animal {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.pandaMaxHealth);
setAttributes();
}
@@ -188,10 +188,10 @@ index 45a92265ac626ae401342e6a21b0ba271ba5b371..615784e3b53d43e2167d91bb41c26079
@Override
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 1c3d1ce288d3446291fb729b0c6caeab4202fcb7..a5e6a6271b88ff16914c5d1d067552b36af0772a 100644
index b2963b0064c6f01adc1d8a54b7c5687c79ba6a73..ac36bd31cc81b48e14f0bb4fc683726b669673be 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -186,6 +186,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -191,6 +191,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.parrotMaxHealth);
}
@@ -204,10 +204,10 @@ index 1c3d1ce288d3446291fb729b0c6caeab4202fcb7..a5e6a6271b88ff16914c5d1d067552b3
@Nullable
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 f4ae6de32bc1d854c54da829e45ca2cd15090433..998cfee2bb20ed4536843a7bb56d9e346665f612 100644
index 284f632fcce31f180742a131cc358288aba54807..3b4ad2199f40fbf902948545908247c805a3f1fa 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -79,6 +79,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
@@ -84,6 +84,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.pigMaxHealth);
}
@@ -220,10 +220,10 @@ index f4ae6de32bc1d854c54da829e45ca2cd15090433..998cfee2bb20ed4536843a7bb56d9e34
@Override
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 0b5d4416ad4dc0a90cbd1826c45c47412d2e85ed..9b3870ad371e2c7df1587479291fd821c3e9ee4a 100644
index 1215d26bc383573e84f674c8d67768bfbe89da59..de109bea3e132e08743f0a26f18262ee9a4982bd 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -115,6 +115,11 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -120,6 +120,11 @@ public class PolarBear extends Animal implements NeutralMob {
return this.isInLove() && bear.isInLove();
}
}
@@ -236,10 +236,10 @@ index 0b5d4416ad4dc0a90cbd1826c45c47412d2e85ed..9b3870ad371e2c7df1587479291fd821
@Override
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 c1c2909728197dcb9137fb380ed210e7ee13e5d9..dd6e51be94189679d169f55805c9252107560be2 100644
index a34fcda0ef72689d014ca8fd0a9131a66f25fb61..48f8c2aaa27756d649a17dcbae78b1d579c3274f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -135,6 +135,11 @@ public class Rabbit extends Animal {
@@ -140,6 +140,11 @@ public class Rabbit extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.rabbitMaxHealth);
}
@@ -252,10 +252,10 @@ index c1c2909728197dcb9137fb380ed210e7ee13e5d9..dd6e51be94189679d169f55805c92521
// CraftBukkit start - code from constructor
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 fbab9473e4ccce29ed55ebf707a5aacd128820cb..efd416c472815cc0fea0bebc3db2588a4012036b 100644
index 9d6765e2bd6bfdd39728bdd14cabbe4bf33d96ac..86f398fc79dcc5dd24a61483d292e228dd6ab83b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -131,6 +131,11 @@ public class Sheep extends Animal implements Shearable {
@@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.sheepMaxHealth);
}
@@ -268,10 +268,10 @@ index fbab9473e4ccce29ed55ebf707a5aacd128820cb..efd416c472815cc0fea0bebc3db2588a
@Override
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 3d30ea6f2392e6ed2c7294a9194daee31dadc7d8..0aec4ed51072948b9257e9d4b07eed92d95d902f 100644
index 89a95622465a203efcecaf4c46e5b5e0419f84d3..69cdf5540c654d730f4fc45e418c4c2ae532d2bc 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -101,6 +101,11 @@ public class Turtle extends Animal {
@@ -106,6 +106,11 @@ public class Turtle extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.turtleMaxHealth);
}
@@ -284,10 +284,10 @@ index 3d30ea6f2392e6ed2c7294a9194daee31dadc7d8..0aec4ed51072948b9257e9d4b07eed92
public void setHomePos(BlockPos 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 277637692e504cca04bfca7683c052295c2c5a86..9f23279f7e3aedb758082c672656d5e4b160c074 100644
index 0336bc717b22a2747cb233268dc5ececab56cee2..749e007fc0a703ca9baa58490b3b7641611d2aa4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -119,6 +119,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -124,6 +124,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.wolfMaxHealth);
}
@@ -300,10 +300,10 @@ index 277637692e504cca04bfca7683c052295c2c5a86..9f23279f7e3aedb758082c672656d5e4
@Override
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 1b66aea5871ccf83ea39d3f52f0f6da72cd785b6..1ac7aa1f49a9740b5e20a5452410a6557ce98eda 100644
index 8dea317e201c34034d03fd755cd8d30d892e6f13..a83139c75968abe7c62d6aec7e18cd010f9d447c 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
@@ -111,6 +111,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -116,6 +116,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.axolotlMaxHealth);
}
@@ -316,10 +316,10 @@ index 1b66aea5871ccf83ea39d3f52f0f6da72cd785b6..1ac7aa1f49a9740b5e20a5452410a655
@Override
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 39a7ea2854090d8505a9bc888313d84645595e23..33e7abf0b02695d191a9b827dc82f432c3381167 100644
index 0dca918e98182faf90f09d2ecf8985796d7b2fb5..ca545e7337ff58654f136d1edd8588bf92ca4977 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
@@ -89,6 +89,11 @@ public class Goat extends Animal {
@@ -94,6 +94,11 @@ public class Goat extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.goatMaxHealth);
}
@@ -364,10 +364,10 @@ index 9f7203608e15fdce1bfbaf419838768763d61378..2c5cb1b759a0b6e0233345da5a968288
@Override
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 1195f307ec827c206480fed63deb3775ba3eb22b..20f778fbcd393baa769c005dfe4163bb4e92a655 100644
index f6bd1eff78b3c879ecc439bab3b5aa7674e74044..fe6ce743b51c1ff74e8a1233cf0217c048b8577c 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
@@ -127,6 +127,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -132,6 +132,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
public double generateRandomSpeed() {
return generateRandomSpeed(this.level.purpurConfig.llamaMovementSpeedMin, this.level.purpurConfig.llamaMovementSpeedMax);
}
@@ -412,10 +412,10 @@ index 3c3be1a40f04def3f2ffb6567fa5be0581b5608d..e7910b0bbb061f524909757dab4c7e59
public static AttributeSupplier.Builder createAttributes() {
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 f651cb7a89388f23cef33d8f817cffd3c6ecea2b..a58153ad203a91c6ebb014febdaab167b8e694c4 100644
index 89f3c480d2e8cc28bb26fcd65a5a51a652e7365a..bdb71283d402656a3da6dd699d4cd6a5c935e541 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
@@ -57,6 +57,11 @@ public class TraderLlama extends Llama {
@@ -62,6 +62,11 @@ public class TraderLlama extends Llama {
public double generateRandomSpeed() {
return generateRandomSpeed(this.level.purpurConfig.traderLlamaMovementSpeedMin, this.level.purpurConfig.traderLlamaMovementSpeedMax);
}
@@ -444,10 +444,10 @@ index 48b72eb4051d612648a1978b38299c0c37a3a289..b6d9ba8dd5694952ca2eba54726ac5e5
public static AttributeSupplier.Builder createAttributes() {
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 e65eaf393b118e38fde8f525ac9b1d6e6f98e729..74d11bf608ff26093d7995a09a463cac24304fa1 100644
index 0ceeca25fddea15ba5860f2745dc37a29845cb3e..003eced9d2dcc9cba200a12fe43035f125df8be3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -112,6 +112,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -117,6 +117,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.striderMaxHealth);
}
@@ -460,10 +460,10 @@ index e65eaf393b118e38fde8f525ac9b1d6e6f98e729..74d11bf608ff26093d7995a09a463cac
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
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 32836a16b18f4bb168d5a3d292765be33b998280..7013ae9b2649b98471902e37747b80812e0a09e0 100644
index fc08f6ec195abcb1950d6924905740d59689a543..35e758e7630cbba6ff80307261cf1f84b278829e 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
@@ -82,6 +82,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -87,6 +87,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.hoglinMaxHealth);
}
@@ -476,30 +476,31 @@ index 32836a16b18f4bb168d5a3d292765be33b998280..7013ae9b2649b98471902e37747b8081
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30fc98b318 100644
index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3db068eca 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -485,9 +485,11 @@ public class PurpurWorldConfig {
@@ -486,10 +486,12 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public boolean axolotlControllable = true;
public double axolotlMaxHealth = 14.0D;
+ public int axolotlBreedingTicks = 6000;
private void axolotlSettings() {
axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable);
axolotlControllable = getBoolean("mobs.axolotl.controllable", axolotlControllable);
axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth);
+ axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks);
}
public boolean batRidable = false;
@@ -517,6 +519,7 @@ public class PurpurWorldConfig {
public boolean beeRidableInWater = false;
public double beeMaxY = 256D;
@@ -522,6 +524,7 @@ public class PurpurWorldConfig {
public boolean beeControllable = true;
public double beeMaxY = 320D;
public double beeMaxHealth = 10.0D;
+ public int beeBreedingTicks = 6000;
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -527,6 +530,7 @@ public class PurpurWorldConfig {
@@ -533,6 +536,7 @@ public class PurpurWorldConfig {
set("mobs.bee.attributes.max_health", oldValue);
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
@@ -507,7 +508,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean blazeRidable = false;
@@ -551,6 +555,7 @@ public class PurpurWorldConfig {
@@ -560,6 +564,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@@ -515,7 +516,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -563,6 +568,7 @@ public class PurpurWorldConfig {
@@ -573,6 +578,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);
@@ -523,15 +524,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean caveSpiderRidable = false;
@@ -583,6 +589,7 @@ public class PurpurWorldConfig {
public boolean chickenRidableInWater = false;
@@ -596,6 +602,7 @@ public class PurpurWorldConfig {
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
+ public int chickenBreedingTicks = 6000;
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -593,6 +600,7 @@ public class PurpurWorldConfig {
@@ -607,6 +614,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@@ -539,15 +540,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean codRidable = false;
@@ -611,6 +619,7 @@ public class PurpurWorldConfig {
public boolean cowRidableInWater = false;
@@ -628,6 +636,7 @@ public class PurpurWorldConfig {
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
+ public int cowBreedingTicks = 6000;
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -621,6 +630,7 @@ public class PurpurWorldConfig {
@@ -639,6 +648,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@@ -555,7 +556,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean creeperRidable = false;
@@ -668,6 +678,7 @@ public class PurpurWorldConfig {
@@ -690,6 +700,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -563,7 +564,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -683,6 +694,7 @@ public class PurpurWorldConfig {
@@ -705,6 +716,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);
@@ -571,15 +572,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean drownedRidable = false;
@@ -789,6 +801,7 @@ public class PurpurWorldConfig {
public boolean foxRidableInWater = false;
@@ -824,6 +836,7 @@ public class PurpurWorldConfig {
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
+ public int foxBreedingTicks = 6000;
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -799,6 +812,7 @@ public class PurpurWorldConfig {
@@ -835,6 +848,7 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -587,28 +588,29 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean ghastRidable = false;
@@ -859,10 +873,12 @@ public class PurpurWorldConfig {
public boolean goatRidable = false;
@@ -902,11 +916,13 @@ public class PurpurWorldConfig {
public boolean goatRidableInWater = false;
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
+ public int goatBreedingTicks = 6000;
private void goatSettings() {
goatRidable = getBoolean("mobs.goat.ridable", goatRidable);
goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater);
goatControllable = getBoolean("mobs.goat.controllable", goatControllable);
goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth);
+ goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks);
}
public boolean guardianRidable = false;
@@ -880,6 +896,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidable = false;
@@ -927,6 +943,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidableInWater = false;
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
+ public int hoglinBreedingTicks = 6000;
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -889,6 +906,7 @@ public class PurpurWorldConfig {
@@ -937,6 +954,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
@@ -616,7 +618,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean horseRidableInWater = false;
@@ -898,6 +916,7 @@ public class PurpurWorldConfig {
@@ -946,6 +964,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -624,7 +626,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -913,6 +932,7 @@ public class PurpurWorldConfig {
@@ -961,6 +980,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);
@@ -632,7 +634,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean huskRidable = false;
@@ -983,6 +1003,7 @@ public class PurpurWorldConfig {
@@ -1038,6 +1058,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -640,7 +642,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -999,6 +1020,7 @@ public class PurpurWorldConfig {
@@ -1055,6 +1076,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);
@@ -648,15 +650,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean magmaCubeRidable = false;
@@ -1024,6 +1046,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidable = false;
@@ -1083,6 +1105,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidableInWater = false;
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
+ public int mooshroomBreedingTicks = 6000;
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1033,6 +1056,7 @@ public class PurpurWorldConfig {
@@ -1093,6 +1116,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
@@ -664,7 +666,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean muleRidableInWater = false;
@@ -1042,6 +1066,7 @@ public class PurpurWorldConfig {
@@ -1102,6 +1126,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -672,7 +674,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1057,11 +1082,13 @@ public class PurpurWorldConfig {
@@ -1117,12 +1142,14 @@ 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);
@@ -681,12 +683,13 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
public boolean ocelotRidable = false;
public boolean ocelotRidableInWater = false;
public boolean ocelotControllable = true;
public double ocelotMaxHealth = 10.0D;
+ public int ocelotBreedingTicks = 6000;
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1071,11 +1098,13 @@ public class PurpurWorldConfig {
@@ -1133,12 +1160,14 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
@@ -695,12 +698,13 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
public boolean pandaRidable = false;
public boolean pandaRidableInWater = false;
public boolean pandaControllable = true;
public double pandaMaxHealth = 20.0D;
+ public int pandaBreedingTicks = 6000;
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1085,6 +1114,7 @@ public class PurpurWorldConfig {
@@ -1149,6 +1178,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
@@ -708,15 +712,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean parrotRidable = false;
@@ -1175,6 +1205,7 @@ public class PurpurWorldConfig {
public boolean pigRidableInWater = false;
@@ -1244,6 +1274,7 @@ public class PurpurWorldConfig {
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
+ public int pigBreedingTicks = 6000;
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1185,6 +1216,7 @@ public class PurpurWorldConfig {
@@ -1255,6 +1286,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -724,7 +728,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean piglinRidable = false;
@@ -1234,6 +1266,7 @@ public class PurpurWorldConfig {
@@ -1311,6 +1343,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -732,7 +736,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1246,6 +1279,7 @@ public class PurpurWorldConfig {
@@ -1324,6 +1357,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -740,7 +744,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean pufferfishRidable = false;
@@ -1265,6 +1299,7 @@ public class PurpurWorldConfig {
@@ -1346,6 +1380,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -748,7 +752,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1276,6 +1311,7 @@ public class PurpurWorldConfig {
@@ -1358,6 +1393,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);
@@ -756,15 +760,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean ravagerRidable = false;
@@ -1307,6 +1343,7 @@ public class PurpurWorldConfig {
public boolean sheepRidable = false;
@@ -1394,6 +1430,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
+ public int sheepBreedingTicks = 6000;
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1316,6 +1353,7 @@ public class PurpurWorldConfig {
@@ -1404,6 +1441,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
@@ -772,15 +776,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean shulkerRidable = false;
@@ -1474,6 +1512,7 @@ public class PurpurWorldConfig {
public boolean striderRidable = false;
@@ -1579,6 +1617,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
+ public int striderBreedingTicks = 6000;
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1483,6 +1522,7 @@ public class PurpurWorldConfig {
@@ -1589,6 +1628,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@@ -788,7 +792,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean traderLlamaRidable = false;
@@ -1493,6 +1533,7 @@ public class PurpurWorldConfig {
@@ -1600,6 +1640,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -796,7 +800,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1509,6 +1550,7 @@ public class PurpurWorldConfig {
@@ -1617,6 +1658,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);
@@ -804,15 +808,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean tropicalFishRidable = false;
@@ -1526,6 +1568,7 @@ public class PurpurWorldConfig {
public boolean turtleRidable = false;
@@ -1637,6 +1679,7 @@ public class PurpurWorldConfig {
public boolean turtleRidableInWater = false;
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
+ public int turtleBreedingTicks = 6000;
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1535,6 +1578,7 @@ public class PurpurWorldConfig {
@@ -1647,6 +1690,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@@ -820,7 +824,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean vexRidable = false;
@@ -1563,6 +1607,7 @@ public class PurpurWorldConfig {
@@ -1678,6 +1722,7 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
@@ -828,7 +832,7 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1579,6 +1624,7 @@ public class PurpurWorldConfig {
@@ -1695,6 +1740,7 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
@@ -836,15 +840,15 @@ index 4a3acf6e9159ee6ef095a93c1f67c028c7ae8356..5188492e3cedd85aa891911fd30b0a30
}
public boolean vindicatorRidable = false;
@@ -1670,6 +1716,7 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
@@ -1797,6 +1843,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
+ public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1679,6 +1726,7 @@ public class PurpurWorldConfig {
@@ -1807,6 +1854,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -8,10 +8,10 @@ This should help to reduce the amount of dirt, gravel, grass, and etc.
that Endermen like to randomly place all over the world.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 37fe7d448ae40e67cc8c7c1856df3c8ac276f0be..3945038b07393cd4692b340f32a988404117fe6f 100644
index 83341eaa1162c311d6e1649fe9b6743597077e35..6a4f1e85b2d19dee943cd63ccce05fda2a5fb1eb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -459,7 +459,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -464,7 +464,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean requiresCustomPersistence() {
@@ -21,18 +21,18 @@ index 37fe7d448ae40e67cc8c7c1856df3c8ac276f0be..3945038b07393cd4692b340f32a98840
private static class EndermanFreezeWhenLookedAt extends Goal {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1dfd19712d883935dc59123d1b2468ed42453152..b2c3bc12d5d0f4342a684bc14d5b00bcd309716d 100644
index b087f61d16656df5050691ee194d94063e0de054..c5051a9d495853c6abe025c34f6a08f0a55b110c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -763,6 +763,7 @@ public class PurpurWorldConfig {
public boolean endermanRidableInWater = false;
@@ -792,6 +792,7 @@ public class PurpurWorldConfig {
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
+ public boolean endermanDespawnEvenWithBlock = false;
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -773,6 +774,7 @@ public class PurpurWorldConfig {
@@ -803,6 +804,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1ef0de7544f26faf69dc0395da8e09f9514a4aff..0e7fcda7cd4d9008ba3aeb15a50301b8dcb8ba24 100644
index 83fb51ad723f06d002f31bd1caefb778f057a5ad..48fbb4344587be603e921ebf3f0f0e8b0dc44972 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1231,7 +1231,7 @@ public abstract class Mob extends LivingEntity {
@@ -1229,7 +1229,7 @@ public abstract class Mob extends LivingEntity {
@Nullable
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE));
@@ -18,7 +18,7 @@ index 1ef0de7544f26faf69dc0395da8e09f9514a4aff..0e7fcda7cd4d9008ba3aeb15a50301b8
} else {
this.setLeftHanded(false);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cafa9168b688ba141b96ba0a243048b5a00841cd..2e177ec703bda4375d4c8d59b410fb1842b679d9 100644
index 63212c3d00a4aabb9f14b50016f43aa9e1f10249..367ce7f6003be23ffe2228e26365cb894089d4b4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -150,8 +150,10 @@ public class PurpurWorldConfig {

View File

@@ -10,10 +10,10 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to
0, snow golems won't shoot any snowballs.
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index a9c1b07f23c604d9364ccdee9478baf137af0816..10d68856c98b705158fe90623ef2b9ad41bef2f2 100644
index 921215712cba59273da4387b5b4b2f3f5c9da6e2..d5f4166e3148d1a15ed1f04069ac0b4f5d09ebdc 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -74,7 +74,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -79,7 +79,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -23,10 +23,10 @@ index a9c1b07f23c604d9364ccdee9478baf137af0816..10d68856c98b705158fe90623ef2b9ad
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 16b8fa1509f542c715ba18d2966b36afd0ce4b25..066f7f6d51141d60e399d18cfc00a0693c577f7d 100644
index 2c0ac3fa1ce94c3b09dd55aa901e9e986ffb4338..50f4fe8b85a7e7fbb536f93b1c10132711aa5ded 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1466,6 +1466,10 @@ public class PurpurWorldConfig {
@@ -1563,6 +1563,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index 16b8fa1509f542c715ba18d2966b36afd0ce4b25..066f7f6d51141d60e399d18cfc00a069
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1478,6 +1482,10 @@ public class PurpurWorldConfig {
@@ -1576,6 +1580,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -145,10 +145,10 @@ index b615dc2a2127f0874775d1707e96edfb4d95b987..72ae6b3282aac806ae11b87024ee940e
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 3d755f2c6253e83d0d9fb1348f066f4f7fe1d4be..1d711f67709b8af89d4ada3191fdce716e92047c 100644
index 14ba8dcf9392e3bfdb92663f98455cb9c0f44c10..72f067f1d88a77b9ad571bac84cecf10cc63c975 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -217,7 +217,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -222,7 +222,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F));
} else {
brain.setSchedule(Schedule.VILLAGER_DEFAULT);
@@ -157,7 +157,7 @@ index 3d755f2c6253e83d0d9fb1348f066f4f7fe1d4be..1d711f67709b8af89d4ada3191fdce71
}
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
@@ -982,6 +982,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -987,6 +987,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public boolean hasFarmSeeds() {
@@ -183,10 +183,10 @@ index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e612
public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 066f7f6d51141d60e399d18cfc00a0693c577f7d..0678c7a779114dbac0036d55f179bca7de4e470a 100644
index 50f4fe8b85a7e7fbb536f93b1c10132711aa5ded..0b7125bf5abf54b4d87de846a583ca3f20f9774f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1633,6 +1633,8 @@ public class PurpurWorldConfig {
@@ -1748,6 +1748,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
@@ -195,7 +195,7 @@ index 066f7f6d51141d60e399d18cfc00a0693c577f7d..0678c7a779114dbac0036d55f179bca7
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1650,6 +1652,8 @@ public class PurpurWorldConfig {
@@ -1766,6 +1768,8 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);

View File

@@ -13,10 +13,10 @@ to the Piglin being angry, even though the player never hit them.
This patch adds a toggle to disable this behavior.
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 76f1bbec2b8ebe037de65ee5ec718e17a6081c13..f8b742ee8e637edd8e8b05aff2fcc7a75afe959a 100644
index e2192c45eba111a62dded3731dcdeacc6168710c..ecf0b5def569f6c37d0a27ceb51e7158e57cbe6b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -138,7 +138,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -143,7 +143,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
this.maybeAlertOthers();
}
@@ -25,7 +25,7 @@ index 76f1bbec2b8ebe037de65ee5ec718e17a6081c13..f8b742ee8e637edd8e8b05aff2fcc7a7
this.lastHurtByPlayerTime = this.tickCount;
}
@@ -193,7 +193,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -198,7 +198,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
this.ticksUntilNextAlert = ZombifiedPiglin.ALERT_INTERVAL.sample(this.random);
}
@@ -35,10 +35,10 @@ index 76f1bbec2b8ebe037de65ee5ec718e17a6081c13..f8b742ee8e637edd8e8b05aff2fcc7a7
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0678c7a779114dbac0036d55f179bca7de4e470a..f43bcc77b36bcb1af5fff7f96bceac06599b0f4e 100644
index 0b7125bf5abf54b4d87de846a583ca3f20f9774f..ca40f12a245d57f1887adc599eef2fbf4f85c209 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1852,6 +1852,7 @@ public class PurpurWorldConfig {
@@ -1987,6 +1987,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 0678c7a779114dbac0036d55f179bca7de4e470a..f43bcc77b36bcb1af5fff7f96bceac06
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -1865,5 +1866,6 @@ public class PurpurWorldConfig {
@@ -2001,5 +2002,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 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297869c47f3 100644
index 749e007fc0a703ca9baa58490b3b7641611d2aa4..6be2d2c2b3eb33cb8657a2cdfb49c49cb83964c2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -11,6 +11,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
@@ -93,7 +93,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
private static final float START_HEALTH = 8.0F;
private static final float TAME_HEALTH = 20.0F;
private float interestedAngle;
@@ -124,6 +162,37 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -129,6 +167,37 @@ public class Wolf extends TamableAnimal implements NeutralMob {
public int getPurpurBreedTime() {
return this.level.purpurConfig.wolfBreedingTicks;
}
@@ -131,7 +131,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
// Purpur end
@Override
@@ -132,6 +201,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -137,6 +206,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
this.goalSelector.addGoal(1, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
this.goalSelector.addGoal(3, new Wolf.WolfAvoidEntityGoal<>(this, Llama.class, 24.0F, 1.5D, 1.5D));
@@ -139,7 +139,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
this.goalSelector.addGoal(4, new LeapAtTargetGoal(this, 0.4F));
this.goalSelector.addGoal(5, new MeleeAttackGoal(this, 1.0D, true));
this.goalSelector.addGoal(6, new FollowOwnerGoal(this, 1.0D, 10.0F, 2.0F, false));
@@ -145,7 +215,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -150,7 +220,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt));
@@ -148,7 +148,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR));
this.targetSelector.addGoal(7, new NearestAttackableTargetGoal<>(this, AbstractSkeleton.class, false));
this.targetSelector.addGoal(8, new ResetUniversalAngerTargetGoal<>(this, true));
@@ -190,6 +260,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -195,6 +265,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
nbt.putByte("CollarColor", (byte) this.getCollarColor().getId());
@@ -156,7 +156,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
this.addPersistentAngerSaveData(nbt);
}
@@ -199,6 +270,10 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -204,6 +275,10 @@ public class Wolf extends TamableAnimal implements NeutralMob {
if (nbt.contains("CollarColor", 99)) {
this.setCollarColor(DyeColor.byId(nbt.getInt("CollarColor")));
}
@@ -167,7 +167,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
this.readPersistentAngerSaveData(this.level, nbt);
}
@@ -243,6 +318,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -248,6 +323,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
public void tick() {
super.tick();
if (this.isAlive()) {
@@ -179,7 +179,7 @@ index 9f23279f7e3aedb758082c672656d5e4b160c074..38c69ddde8a54482a1de60387bace297
this.interestedAngleO = this.interestedAngle;
if (this.isInterested()) {
this.interestedAngle += (1.0F - this.interestedAngle) * 0.4F;
@@ -440,6 +520,20 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -445,6 +525,20 @@ public class Wolf extends TamableAnimal implements NeutralMob {
return InteractionResult.SUCCESS;
}
@@ -222,19 +222,19 @@ index f856b42201c17f8da21251e54fcf052336916e70..ac0803d42be2f36a2f40487ee31413d0
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f43bcc77b36bcb1af5fff7f96bceac06599b0f4e..371aa602dc35eab9e09816130e5e0a24bf899a82 100644
index ca40f12a245d57f1887adc599eef2fbf4f85c209..dd874c0576d0f5986717c28a9d267b7590ff18ff 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1745,6 +1745,8 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
@@ -1872,6 +1872,8 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
+ public boolean wolfMilkCuresRabies = true;
+ public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1755,6 +1757,8 @@ public class PurpurWorldConfig {
@@ -1883,6 +1885,8 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -7,10 +7,10 @@ This allows for the server to set a default collar color when a wolf or cat is t
Resets to RED when the value is invalid.
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 e9a165b7bb66dd4ae1c1befc67c671f45ec8271b..7d1e22f3c6eb5462d07027b3a2890b07667ddc46 100644
index dadea789949e65c79260f32de7d6e42ee679555e..0cddd8e8ccd7d7d5c38802116f9aaadb927224c1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -367,6 +367,14 @@ public class Cat extends TamableAnimal {
@@ -372,6 +372,14 @@ public class Cat extends TamableAnimal {
return Mth.lerp(tickDelta, this.relaxStateOneAmountO, this.relaxStateOneAmount);
}
@@ -26,10 +26,10 @@ index e9a165b7bb66dd4ae1c1befc67c671f45ec8271b..7d1e22f3c6eb5462d07027b3a2890b07
public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) {
Cat entitycat = (Cat) EntityType.CAT.create(world);
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 38c69ddde8a54482a1de60387bace297869c47f3..20e0e74d7e43f436172ca7b4cb8b613ba116f9ec 100644
index 6be2d2c2b3eb33cb8657a2cdfb49c49cb83964c2..0ded0de33fb53d827f2cdbfa5472c3469ee5a329 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -193,6 +193,12 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -198,6 +198,12 @@ public class Wolf extends TamableAnimal implements NeutralMob {
this.updatePathfinders(false);
return super.finalizeSpawn(world, difficulty, type, data, nbt);
}
@@ -43,38 +43,38 @@ index 38c69ddde8a54482a1de60387bace297869c47f3..20e0e74d7e43f436172ca7b4cb8b613b
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 371aa602dc35eab9e09816130e5e0a24bf899a82..1bf798e4fb771cb1dfe0c001ebf618bd28d55df2 100644
index dd874c0576d0f5986717c28a9d267b7590ff18ff..9e9d1c7be240a58d2e0c1fe6ac91c234f286c826 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -566,6 +566,7 @@ public class PurpurWorldConfig {
public boolean catRidable = false;
public boolean catRidableInWater = false;
+ public DyeColor catDefaultCollarColor = DyeColor.RED;
public double catMaxHealth = 10.0D;
public int catSpawnDelay = 1200;
@@ -580,6 +580,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
@@ -579,6 +580,11 @@ public class PurpurWorldConfig {
set("mobs.cat.attributes.max-health", null);
set("mobs.cat.attributes.max_health", oldValue);
}
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
+ public DyeColor catDefaultCollarColor = DyeColor.RED;
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -594,6 +595,11 @@ public class PurpurWorldConfig {
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);
+ try {
+ catDefaultCollarColor = DyeColor.valueOf(getString("mobs.cat.default-collar-color", wolfDefaultCollarColor.name()));
+ } catch (IllegalArgumentException ignore) {
+ catDefaultCollarColor = DyeColor.RED;
+ }
catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth);
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
@@ -1745,6 +1751,7 @@ public class PurpurWorldConfig {
public boolean wolfRidable = false;
}
public boolean caveSpiderRidable = false;
@@ -1872,6 +1878,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
+ public DyeColor wolfDefaultCollarColor = DyeColor.RED;
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1757,6 +1764,11 @@ public class PurpurWorldConfig {
@@ -1885,6 +1892,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Phantom flames on swoop
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 72a790e6aba656e8817a84d2c729ce722e9a43ef..130b7e356b5aba604eaaaac2d2898e13359fd6fc 100644
index 20ff9c65f89635a4b91d334775b3ac380b5ccbac..c01820307fa6d476402632d44b65ada164a5aded 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -239,6 +239,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -244,6 +244,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.level.addParticle(ParticleTypes.MYCELIUM, this.getX() - (double) f2, this.getY() + (double) f4, this.getZ() - (double) f3, 0.0D, 0.0D, 0.0D);
}
@@ -17,10 +17,10 @@ index 72a790e6aba656e8817a84d2c729ce722e9a43ef..130b7e356b5aba604eaaaac2d2898e13
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1bf798e4fb771cb1dfe0c001ebf618bd28d55df2..9d879101a072c5c02ff874ad18483f810c42e353 100644
index 9e9d1c7be240a58d2e0c1fe6ac91c234f286c826..f324176dcee9b3111cc69c66e7ba07d721c8af35 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1184,6 +1184,7 @@ public class PurpurWorldConfig {
@@ -1251,6 +1251,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index 1bf798e4fb771cb1dfe0c001ebf618bd28d55df2..9d879101a072c5c02ff874ad18483f81
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1222,6 +1223,7 @@ public class PurpurWorldConfig {
@@ -1290,6 +1291,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Striders give saddle back
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 74d11bf608ff26093d7995a09a463cac24304fa1..5902f0883ca0ad706801dc693bb3ac79b3eae91c 100644
index 003eced9d2dcc9cba200a12fe43035f125df8be3..cfa355d99d5f8aaefe4cf0c10805ef7b51a0224a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -451,6 +451,18 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -456,6 +456,18 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
if (!flag && this.isSaddled() && !this.isVehicle() && !player.isSecondaryUseActive()) {
if (!this.level.isClientSide) {
@@ -28,18 +28,18 @@ index 74d11bf608ff26093d7995a09a463cac24304fa1..5902f0883ca0ad706801dc693bb3ac79
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8adefc693683c5870abb5d0f2f63b5391d7efb6d..332025053dd547e46c9d1f59114bea989e54bb3b 100644
index c2847155d1af14dd2b069328d671ed58363b4fdb..80485a8cb979ffc4ff698127574350ec78cc57e7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1551,6 +1551,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
@@ -1656,6 +1656,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
+ public boolean striderGiveSaddleBack = false;
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1561,6 +1562,7 @@ public class PurpurWorldConfig {
@@ -1667,6 +1668,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -18,10 +18,10 @@ index 66628b9c301da2fee3afe42ed321a2c31fc63d2b..cb825b7edfcee31ba431e5f166ec9008
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 0e7fcda7cd4d9008ba3aeb15a50301b8dcb8ba24..fa23e24708f4d9e1f50e54cda76113a9a7695c0a 100644
index 48fbb4344587be603e921ebf3f0f0e8b0dc44972..1060f3f27eb5cb205629e939c2a106dfa69d5626 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -666,7 +666,7 @@ public abstract class Mob extends LivingEntity {
@@ -664,7 +664,7 @@ public abstract class Mob extends LivingEntity {
public void aiStep() {
super.aiStep();
this.level.getProfiler().push("looting");
@@ -92,10 +92,10 @@ index 027ef44d46cb1dda19c5c239f6970c90285fb961..fd0ed33487305093bbdf6c9bf23313a5
} else if (this.nextStartTick > 0) {
--this.nextStartTick;
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 f7f5a75f29a5092a7d8ee689cd3679d8eaac7c7d..d667159664c05e4e45fe3c22a52f5e228a91409a 100644
index 5fdea5a1e49f457a5094568854a50c3fb1059f81..cd462190ba900d4cf817967e52a83b68e31722a0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -1356,7 +1356,7 @@ public class Fox extends Animal {
@@ -1361,7 +1361,7 @@ public class Fox extends Animal {
}
protected void onReachedTarget() {
@@ -105,10 +105,10 @@ index f7f5a75f29a5092a7d8ee689cd3679d8eaac7c7d..d667159664c05e4e45fe3c22a52f5e22
if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) {
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 dd6e51be94189679d169f55805c9252107560be2..a65e2addade6b7e5ad47d0f7d25ebc1790b7329f 100644
index 48f8c2aaa27756d649a17dcbae78b1d579c3274f..2beb1421a2dc11c35f83ccff80e8f87e7bafe54a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -611,7 +611,7 @@ public class Rabbit extends Animal {
@@ -616,7 +616,7 @@ public class Rabbit extends Animal {
@Override
public boolean canUse() {
if (this.nextStartTick <= 0) {
@@ -118,10 +118,10 @@ index dd6e51be94189679d169f55805c9252107560be2..a65e2addade6b7e5ad47d0f7d25ebc17
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 10d68856c98b705158fe90623ef2b9ad41bef2f2..0c22b4502be1bf886307ad9b35c49ca617c28dbb 100644
index d5f4166e3148d1a15ed1f04069ac0b4f5d09ebdc..bf9256fb8d50259fe099d6f4a2b945bee81b0d03 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -128,7 +128,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -133,7 +133,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
this.hurt(CraftEventFactory.MELTING, 1.0F); // CraftBukkit - DamageSource.BURN -> CraftEventFactory.MELTING
}
@@ -131,10 +131,10 @@ index 10d68856c98b705158fe90623ef2b9ad41bef2f2..0c22b4502be1bf886307ad9b35c49ca6
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 9d4dd8c460d1d69ab56e166e10fd7137ddc47603..f237bcff01e4102f68663bbaa1254bbd5b98ee0c 100644
index e6772a3c4cda03824ed6a34936e1639979e73a0e..ee9cdd91a969e94b36ddb4cf06b15118d5d7204b 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -560,7 +560,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -565,7 +565,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockState iblockdata = this.level.getBlockState(blockposition);
if (!iblockdata.isAir() && iblockdata.getMaterial() != Material.FIRE) {
@@ -144,10 +144,10 @@ index 9d4dd8c460d1d69ab56e166e10fd7137ddc47603..f237bcff01e4102f68663bbaa1254bbd
// flag1 = this.level.removeBlock(blockposition, false) || flag1;
flag1 = true;
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 93cc8dbf2ff435777a5edc11a834ca1b190638ab..cf36bf3067f86572ffb75c2a155dbfc8e3750a12 100644
index 5bb5390ccec6826ead2198b413254dd1bd10f4b8..99b901f1ee202213dae3ab1930342920bbfe3d7a 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -386,7 +386,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -391,7 +391,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
i = this.getInvulnerableTicks() - 1;
this.bossEvent.setProgress(1.0F - (float) i / 220.0F);
if (i <= 0) {
@@ -156,7 +156,7 @@ index 93cc8dbf2ff435777a5edc11a834ca1b190638ab..cf36bf3067f86572ffb75c2a155dbfc8
// CraftBukkit start
// this.level.explode(this, this.getX(), this.getEyeY(), this.getZ(), 7.0F, false, explosion_effect);
ExplosionPrimeEvent event = new ExplosionPrimeEvent(this.getBukkitEntity(), 7.0F, false);
@@ -482,7 +482,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -487,7 +487,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
if (this.destroyBlocksTick > 0) {
--this.destroyBlocksTick;
@@ -166,10 +166,10 @@ index 93cc8dbf2ff435777a5edc11a834ca1b190638ab..cf36bf3067f86572ffb75c2a155dbfc8
j = Mth.floor(this.getX());
int i1 = Mth.floor(this.getZ());
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index bb32bc0989ebbdd7522fe5f70ae3e6414f909388..8ac278f8e55ad7a090ad332db2da1e1eaef0db4d 100644
index 956ec09ac0bc86608af1618be197e56e9055f82f..dee1c40e557c9103fd90e92ee891f266db8700c1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -344,7 +344,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -349,7 +349,7 @@ public class Creeper extends Monster implements PowerableMob {
public void explodeCreeper() {
if (!this.level.isClientSide) {
@@ -179,10 +179,10 @@ index bb32bc0989ebbdd7522fe5f70ae3e6414f909388..8ac278f8e55ad7a090ad332db2da1e1e
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 3945038b07393cd4692b340f32a988404117fe6f..8486b37d37fda4cc380a81edb1675e469e1a4e91 100644
index 6a4f1e85b2d19dee943cd63ccce05fda2a5fb1eb..8f8a5db7231c1ec69ac8b94b16447321fc89618a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -507,7 +507,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -512,7 +512,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur
@@ -191,7 +191,7 @@ index 3945038b07393cd4692b340f32a988404117fe6f..8486b37d37fda4cc380a81edb1675e46
}
@Override
@@ -555,7 +555,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -560,7 +560,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur
@@ -201,10 +201,10 @@ index 3945038b07393cd4692b340f32a988404117fe6f..8486b37d37fda4cc380a81edb1675e46
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
index eb794368625d96aef6883f2c45c6a21e06e33d0b..f0f8d81539ce6a5d0b84488b6dc15fe53e0b1083 100644
index a22ce4c5b5a5a4b138339a645d445e5725a271e5..29efe3092338dfbd6712ddf47fc34595eb0c9552 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
@@ -317,7 +317,7 @@ public class Evoker extends SpellcasterIllager {
@@ -322,7 +322,7 @@ public class Evoker extends SpellcasterIllager {
return false;
} else if (Evoker.this.tickCount < this.nextAttackTickCount) {
return false;
@@ -214,10 +214,10 @@ index eb794368625d96aef6883f2c45c6a21e06e33d0b..f0f8d81539ce6a5d0b84488b6dc15fe5
} else {
List<Sheep> list = Evoker.this.level.getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index b289e0fa4324f012464c655d82ccf59469ae6466..a9681016023be8586268a366914273334e3e7f9e 100644
index 0b916be0e0ed6fcf4263759da368732f4e16542a..99125fe401c561cbd65cadf74d749392677acb24 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -185,7 +185,7 @@ public class Ravager extends Raider {
@@ -190,7 +190,7 @@ public class Ravager extends Raider {
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1D, d1, d0));
}
@@ -227,10 +227,10 @@ index b289e0fa4324f012464c655d82ccf59469ae6466..a9681016023be8586268a36691427333
AABB axisalignedbb = this.getBoundingBox().inflate(0.2D);
Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
index cd26c22664fb23457f99fe04607146c8c6545307..5057b9b6ad2c47a11ca11b281393ccf6a6e8dd6f 100644
index dd473dcd310e6af808bf3e90dc48bd19faf75fe1..25946b0171fd4c9bde91ecf0cb664861e71af4f8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -197,7 +197,7 @@ public class Silverfish extends Monster {
@@ -202,7 +202,7 @@ public class Silverfish extends Monster {
continue;
}
// CraftBukkit end
@@ -239,7 +239,7 @@ index cd26c22664fb23457f99fe04607146c8c6545307..5057b9b6ad2c47a11ca11b281393ccf6
world.destroyBlock(blockposition1, true, this.silverfish);
} else {
world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3);
@@ -235,7 +235,7 @@ public class Silverfish extends Monster {
@@ -240,7 +240,7 @@ public class Silverfish extends Monster {
} else {
Random random = this.mob.getRandom();
@@ -249,10 +249,10 @@ index cd26c22664fb23457f99fe04607146c8c6545307..5057b9b6ad2c47a11ca11b281393ccf6
BlockPos blockposition = (new BlockPos(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ())).relative(this.selectedDirection);
BlockState iblockdata = this.mob.level.getBlockState(blockposition);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index 70be752683291c34248ba7bafa42034f22fec9a9..107afea31c75f11e82672def7300d277dec7af1d 100644
index 76b7e5ed4e50dcbb9e8ac5a142884b764e27c8ed..7c231904032021201126243fd52dc0296f7b8f89 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -407,7 +407,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -412,7 +412,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@Override
public boolean wantsToPickUp(ItemStack stack) {
@@ -393,7 +393,7 @@ index b942e7c85e6c8f9a7664d9e5bf93bcd79e0651f1..5b29f3fced5435e172dd69f6f4eb265e
return true;
// Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c10796fff4 100644
index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b595c8bea 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,8 +109,11 @@ public class PurpurWorldConfig {
@@ -457,7 +457,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean waterInfinite = true;
@@ -677,6 +692,7 @@ public class PurpurWorldConfig {
@@ -696,6 +711,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -465,7 +465,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -688,6 +704,7 @@ public class PurpurWorldConfig {
@@ -708,6 +724,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -473,15 +473,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean dolphinRidable = false;
@@ -775,6 +792,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 256D;
@@ -802,6 +819,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
+ public boolean enderDragonBypassMobGriefing = false;
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -790,6 +808,7 @@ public class PurpurWorldConfig {
@@ -818,6 +836,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -489,7 +489,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean endermanRidable = false;
@@ -797,6 +816,7 @@ public class PurpurWorldConfig {
@@ -826,6 +845,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -497,7 +497,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -808,6 +828,7 @@ public class PurpurWorldConfig {
@@ -838,6 +858,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -505,15 +505,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean endermiteRidable = false;
@@ -827,6 +848,7 @@ public class PurpurWorldConfig {
public boolean evokerRidable = false;
@@ -860,6 +881,7 @@ public class PurpurWorldConfig {
public boolean evokerRidableInWater = false;
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
+ public boolean evokerBypassMobGriefing = false;
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -836,6 +858,7 @@ public class PurpurWorldConfig {
@@ -870,6 +892,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@@ -521,7 +521,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean foxRidable = false;
@@ -843,6 +866,7 @@ public class PurpurWorldConfig {
@@ -878,6 +901,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -529,7 +529,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -854,6 +878,7 @@ public class PurpurWorldConfig {
@@ -890,6 +914,7 @@ 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);
@@ -537,15 +537,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean ghastRidable = false;
@@ -1265,6 +1290,7 @@ public class PurpurWorldConfig {
public boolean piglinRidable = false;
@@ -1336,6 +1361,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = false;
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
+ public boolean piglinBypassMobGriefing = false;
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1274,6 +1300,7 @@ public class PurpurWorldConfig {
@@ -1346,6 +1372,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@@ -553,15 +553,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean piglinBruteRidable = false;
@@ -1293,6 +1320,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidable = false;
@@ -1368,6 +1395,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidableInWater = false;
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
+ public boolean pillagerBypassMobGriefing = false;
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1302,6 +1330,7 @@ public class PurpurWorldConfig {
@@ -1378,6 +1406,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@@ -569,7 +569,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean polarBearRidable = false;
@@ -1343,6 +1372,7 @@ public class PurpurWorldConfig {
@@ -1424,6 +1453,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -577,7 +577,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1355,11 +1385,13 @@ public class PurpurWorldConfig {
@@ -1437,12 +1467,14 @@ public class PurpurWorldConfig {
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);
@@ -586,12 +586,13 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
public boolean ravagerRidable = false;
public boolean ravagerRidableInWater = false;
public boolean ravagerControllable = true;
public double ravagerMaxHealth = 100.0D;
+ public boolean ravagerBypassMobGriefing = false;
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1369,6 +1401,7 @@ public class PurpurWorldConfig {
@@ -1453,6 +1485,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@@ -599,15 +600,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean salmonRidable = false;
@@ -1387,6 +1420,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
@@ -1474,6 +1507,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
+ public boolean sheepBypassMobGriefing = false;
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1397,6 +1431,7 @@ public class PurpurWorldConfig {
@@ -1485,6 +1519,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -615,15 +616,15 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean shulkerRidable = false;
@@ -1416,6 +1451,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidable = false;
@@ -1507,6 +1542,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidableInWater = false;
public boolean silverfishControllable = true;
public double silverfishMaxHealth = 8.0D;
+ public boolean silverfishBypassMobGriefing = false;
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1425,6 +1461,7 @@ public class PurpurWorldConfig {
@@ -1517,6 +1553,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@@ -631,7 +632,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean skeletonRidable = false;
@@ -1496,6 +1533,7 @@ public class PurpurWorldConfig {
@@ -1593,6 +1630,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -639,7 +640,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1512,6 +1550,7 @@ public class PurpurWorldConfig {
@@ -1610,6 +1648,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax);
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
@@ -647,7 +648,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean squidRidable = false;
@@ -1663,6 +1702,7 @@ public class PurpurWorldConfig {
@@ -1778,6 +1817,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -655,7 +656,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1682,6 +1722,7 @@ public class PurpurWorldConfig {
@@ -1798,6 +1838,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);
@@ -663,7 +664,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean vindicatorRidable = false;
@@ -1738,6 +1779,7 @@ public class PurpurWorldConfig {
@@ -1861,6 +1902,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -671,7 +672,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1754,6 +1796,7 @@ public class PurpurWorldConfig {
@@ -1878,6 +1920,7 @@ public class PurpurWorldConfig {
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -679,7 +680,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
}
public boolean witherSkeletonRidable = false;
@@ -1818,6 +1861,7 @@ public class PurpurWorldConfig {
@@ -1949,6 +1992,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -687,7 +688,7 @@ index b644eda947883d1f6d6be427d234a9e534f0061e..53ae26c6713af64b1a04d2bd0ee5c0c1
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1832,6 +1876,7 @@ public class PurpurWorldConfig {
@@ -1964,6 +2008,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

@@ -20,10 +20,10 @@ index 5c64905e90ccca6e0b347241ddf9cc3f71058b8e..3bd7521b131b2b40f807bdc7ab95e64c
return;
}
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 bbada6ca16146eae026ae5ca63372970799815b8..c4ffe4517d7b8c521b5a11555eeffbe3c7a1801d 100644
index 66e054e71e0d3cd936c77b212567462e5c6268f2..5759ff40254ff7238e7b874822f743fbf0d33e81 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -480,7 +480,7 @@ public class Cat extends TamableAnimal {
@@ -485,7 +485,7 @@ public class Cat extends TamableAnimal {
}
} else if (this.isFood(itemstack)) {
this.usePlayerItem(player, hand, itemstack);
@@ -33,10 +33,10 @@ index bbada6ca16146eae026ae5ca63372970799815b8..c4ffe4517d7b8c521b5a11555eeffbe3
this.setOrderedToSit(true);
this.level.broadcastEntityEvent(this, (byte) 7);
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 cb25e36052934c2442fed8e32578915aef3b8074..de702ce3e2dffc44e380b8470aa540a3226a54cb 100644
index fcf1b1168b29622ab2b1dc87a947cb66ef8bedfc..ee52e83375521fa41369161356802c305deb605d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -326,7 +326,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -331,7 +331,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
if (!this.level.isClientSide) {
@@ -46,10 +46,10 @@ index cb25e36052934c2442fed8e32578915aef3b8074..de702ce3e2dffc44e380b8470aa540a3
this.level.broadcastEntityEvent(this, (byte) 7);
} else {
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 663683a50f7a1125f406b6ec8bf7a0419be5f36a..713fe8ac2293fe2e60c5834b3d6fd2f12f3bc391 100644
index 8c4ef7de3dfa2888ea175342a8df308a0a1fa66d..63d3f68326386532b027c077c35629c75508bfc4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -519,7 +519,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -524,7 +524,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// CraftBukkit - added event call and isCancelled check.
@@ -59,7 +59,7 @@ index 663683a50f7a1125f406b6ec8bf7a0419be5f36a..713fe8ac2293fe2e60c5834b3d6fd2f1
this.navigation.stop();
this.setTarget((LivingEntity) null);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f70f0407b1f43b9f21dfd9053da942eea17c9bba..e7299341d4890d6354564be47e30814300858f74 100644
index 75907514dde64d6eb35bd318b63decb1c11d178d..5e7d226a3510e453d4a0b52467ca0f07364ec2a9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 618b8fe6fcf71c58c297b7d918e6c74de6077331..fc071603d760a2e34033bd6341a156cd9ac1e3f3 100644
index 613a847d939349d0b5db34f058865a16d772fadc..c28c2a2a888ddd6c0e6e4feed952fe99bc2a0cfe 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -1114,6 +1114,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1119,6 +1119,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected boolean canRide(Entity entity) {
@@ -17,10 +17,10 @@ index 618b8fe6fcf71c58c297b7d918e6c74de6077331..fc071603d760a2e34033bd6341a156cd
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 3b752f97f75c78657f37215ecd92b7460a71f090..5ef45fe1dac1df779727f9c441f7e6515185e507 100644
index 93a431247b28bcb8cc974f2dfafe1daba440bc48..d7d9500b0c10b5091910610651bcf85524b67a47 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -733,6 +733,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -738,6 +738,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@Override
protected boolean canRide(Entity entity) {
@@ -29,10 +29,10 @@ index 3b752f97f75c78657f37215ecd92b7460a71f090..5ef45fe1dac1df779727f9c441f7e651
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index da979391d05fbfae76db66e02ead184b7aa606ad..0a305bd8ec0f27ab46c98dc3eb44b5f022919cf0 100644
index 451ace3507e54a6a38dc4f154ef0b5471f50f7b4..cdff9baf10df1f572de881f8cb79f9ebe7261903 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -871,6 +871,7 @@ public class PurpurWorldConfig {
@@ -898,6 +898,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index da979391d05fbfae76db66e02ead184b7aa606ad..0a305bd8ec0f27ab46c98dc3eb44b5f0
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -888,6 +889,7 @@ public class PurpurWorldConfig {
@@ -916,6 +917,7 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
@@ -48,7 +48,7 @@ index da979391d05fbfae76db66e02ead184b7aa606ad..0a305bd8ec0f27ab46c98dc3eb44b5f0
}
public boolean endermanRidable = false;
@@ -1960,6 +1962,7 @@ public class PurpurWorldConfig {
@@ -2083,6 +2085,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index da979391d05fbfae76db66e02ead184b7aa606ad..0a305bd8ec0f27ab46c98dc3eb44b5f0
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1978,6 +1981,7 @@ public class PurpurWorldConfig {
@@ -2102,6 +2105,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,7 +5,7 @@ Subject: [PATCH] Add back player spawned endermite API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
index de422b384f5bd5ddc09229a3fc846aeb7176c07c..fce4cf14f5275d7e996db60dab83d4351cc08796 100644
index 35108f25aac196b2c8ba2cf91a6744831e93a0b3..3e0f287695fd3def8ed9967d921e141b7ff8bc47 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -30,6 +30,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -16,7 +16,7 @@ index de422b384f5bd5ddc09229a3fc846aeb7176c07c..fce4cf14f5275d7e996db60dab83d435
public Endermite(EntityType<? extends Endermite> type, Level world) {
super(type, world);
@@ -56,6 +57,14 @@ public class Endermite extends Monster {
@@ -61,6 +62,14 @@ public class Endermite extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.endermiteTakeDamageFromWater;
}
@@ -31,7 +31,7 @@ index de422b384f5bd5ddc09229a3fc846aeb7176c07c..fce4cf14f5275d7e996db60dab83d435
// Purpur end
@Override
@@ -109,12 +118,14 @@ public class Endermite extends Monster {
@@ -114,12 +123,14 @@ public class Endermite extends Monster {
public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt);
this.life = nbt.getInt("Lifetime");

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 5932a5f4f641846637f0afe4c3496910bfdd5570..cccab211d950b82bc213fa17da25ad792fdcd8e5 100644
index a02e04ed34de9d87066b202cf747f927b55cfb76..330d3d6dd1a959830479b2d1846378b0cd7f9151 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -119,7 +119,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -124,7 +124,7 @@ public class EnderMan extends Monster implements NeutralMob {
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.targetSelector.addGoal(1, new EnderMan.EndermanLookForPlayerGoal(this, this::isAngryAt));
this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0]));
@@ -18,10 +18,10 @@ index 5932a5f4f641846637f0afe4c3496910bfdd5570..cccab211d950b82bc213fa17da25ad79
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d3c2f19aef25c543885388625a479b3a41da3033..33101d329f035e814ecfca0cd6ffff4976d32333 100644
index 9993677b92324bda36a01c673d1d47ce5b4f730d..b99f3b2414594640ad5d88cc461ae62b463c1e2a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -920,6 +920,8 @@ public class PurpurWorldConfig {
@@ -949,6 +949,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index d3c2f19aef25c543885388625a479b3a41da3033..33101d329f035e814ecfca0cd6ffff49
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -928,11 +930,17 @@ public class PurpurWorldConfig {
@@ -958,11 +960,17 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -7,10 +7,10 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra
Adds functionality to a useless item!
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index cccab211d950b82bc213fa17da25ad792fdcd8e5..fa2d6b478ed420e36622a0bde48131661d483d8b 100644
index 330d3d6dd1a959830479b2d1846378b0cd7f9151..eb1f02840ae230f9195d72d0ece9553bf72bba3f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -256,7 +256,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -261,7 +261,7 @@ public class EnderMan extends Monster implements NeutralMob {
// Paper end
ItemStack itemstack = (ItemStack) player.getInventory().armor.get(3);
@@ -20,10 +20,10 @@ index cccab211d950b82bc213fa17da25ad792fdcd8e5..fa2d6b478ed420e36622a0bde4813166
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 33101d329f035e814ecfca0cd6ffff4976d32333..1fb43400052a3206c752dd83e721790c858091ba 100644
index b99f3b2414594640ad5d88cc461ae62b463c1e2a..13ddf5fbec4c20af82be03f814004e99fcdb67d9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -922,6 +922,8 @@ public class PurpurWorldConfig {
@@ -951,6 +951,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index 33101d329f035e814ecfca0cd6ffff4976d32333..1fb43400052a3206c752dd83e721790c
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -941,6 +943,8 @@ public class PurpurWorldConfig {
@@ -971,6 +973,8 @@ public class PurpurWorldConfig {
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);

View File

@@ -19,10 +19,10 @@ index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63
List<Entity> list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> {
EntityType<?> entityType = entity.getType();
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 fde47de12ffa43bff9cfd1500a35e49325223291..7656c933a835f15c40e75851e7a2348bdef4010e 100644
index a5463330e6b20dcbf8a82bfb0821412f7c409b1d..6fffb293e1ca06a9f07fe30928e4dd8fff1b0a15 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
@@ -536,7 +536,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -541,7 +541,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
public void joinCaravan(Llama llama) {
@@ -32,10 +32,10 @@ index fde47de12ffa43bff9cfd1500a35e49325223291..7656c933a835f15c40e75851e7a2348b
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ce2aee67f46beb7dd184fc52e53b7f8824501f56..dc76ba9ec061d9146a3915cfe3fcc215397d2f82 100644
index ad950cbf50332004b03f9a19ac2d5739d60e1672..0d6bab1005b93b683ea19ec9b249da1802c4bc51 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1215,6 +1215,7 @@ public class PurpurWorldConfig {
@@ -1270,6 +1270,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index ce2aee67f46beb7dd184fc52e53b7f8824501f56..dc76ba9ec061d9146a3915cfe3fcc215
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1233,6 +1234,7 @@ public class PurpurWorldConfig {
@@ -1289,6 +1290,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death
Creepers exploded after being killed in the alpha days. This brings that back.
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a87f3ca66a 100644
index 7c683693a806142c098dd31e6bc88a0b0a33ec66..cf585d2eaf743d38e06084609ff4c220e096cf71 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -17,7 +17,7 @@ index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a8
// Purpur end
public Creeper(EntityType<? extends Creeper> type, Level world) {
@@ -151,6 +152,14 @@ public class Creeper extends Monster implements PowerableMob {
@@ -156,6 +157,14 @@ public class Creeper extends Monster implements PowerableMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.creeperTakeDamageFromWater;
}
@@ -32,7 +32,7 @@ index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a8
// Purpur end
@Override
@@ -348,6 +357,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -353,6 +362,7 @@ public class Creeper extends Monster implements PowerableMob {
}
public void explodeCreeper() {
@@ -40,7 +40,7 @@ index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a8
if (!this.level.isClientSide) {
Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.creeperBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && level.purpurConfig.creeperAllowGriefing ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur
float f = this.isPowered() ? 2.0F : 1.0F;
@@ -366,7 +376,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -371,7 +381,7 @@ public class Creeper extends Monster implements PowerableMob {
}
// CraftBukkit end
}
@@ -50,10 +50,10 @@ index cf8b4f538ee2df715162adc460c6e8e58b50ba52..525b94c61693cfd7d68305cbf4eb08a8
private void spawnLingeringCloud() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dc76ba9ec061d9146a3915cfe3fcc215397d2f82..2562830e1530eece0b2480b18d5dc1fae34a0274 100644
index 0d6bab1005b93b683ea19ec9b249da1802c4bc51..cfc14462c566096fb6eb2e037da11967c80334f0 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 {
@@ -803,6 +803,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index dc76ba9ec061d9146a3915cfe3fcc215397d2f82..2562830e1530eece0b2480b18d5dc1fa
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -797,6 +798,7 @@ public class PurpurWorldConfig {
@@ -817,6 +818,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable ravager griefable blocks list
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index bb4b50e64908f54d84182208f5d605db20d1456d..83e835a63bc0a211b75db82f4f4eb28874eea9ec 100644
index f8ceb90e468203d995f9f3d9d041a9a43e94fa68..a2893e4a64c339af31641e9d8150b163fb79962c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -200,7 +200,7 @@ public class Ravager extends Raider {
@@ -205,7 +205,7 @@ public class Ravager extends Raider {
BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock();
@@ -31,10 +31,10 @@ index e9087a46e401bc99b73c2cf2731fdac3e68719f8..e054edf9e7c4eef231e155516433c6fa
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2562830e1530eece0b2480b18d5dc1fae34a0274..007ebed0fcffb1dc4c06d4f9585c6ba88c8c9c0c 100644
index cfc14462c566096fb6eb2e037da11967c80334f0..fb16a3541c86f73ea4922baa4e34788ee3c9112d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1571,6 +1571,7 @@ public class PurpurWorldConfig {
@@ -1654,6 +1654,7 @@ public class PurpurWorldConfig {
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 2562830e1530eece0b2480b18d5dc1fae34a0274..007ebed0fcffb1dc4c06d4f9585c6ba8
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1582,6 +1583,23 @@ public class PurpurWorldConfig {
@@ -1666,6 +1667,23 @@ public class PurpurWorldConfig {
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);

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 56df45d9ff5d4ea608c970f26486795f9776d714..31ca5ddf748313f7d6cdee906d13e8dcb616875d 100644
index 6fe8ebc19470425dd5e44b67b0c6b369a1e21365..21f9384b647264c72675889fdda2613031a57c5d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -365,7 +365,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -370,7 +370,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return tryRide(player, hand); // Purpur
} else {
if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
@@ -18,10 +18,10 @@ index 56df45d9ff5d4ea608c970f26486795f9776d714..31ca5ddf748313f7d6cdee906d13e8dc
}
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 e5b78c9d6fb326771d65ea9afd9da38c204922f0..1a8df13b06b1ac5e5a7d63033b4a53261c779eda 100644
index d99e97d5a7291df541a939c0f21297d8c3976138..f3994e53af79a4c3bb327e43cf133a12c20662bf 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -145,7 +145,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -150,7 +150,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return tryRide(player, hand); // Purpur
} else {
if (level.purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
@@ -31,10 +31,10 @@ index e5b78c9d6fb326771d65ea9afd9da38c204922f0..1a8df13b06b1ac5e5a7d63033b4a5326
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 257609405527a2f3256dbdebd8681fe436f5fdc3..dffb0fc28eca9a75f4e4bd30dee33f03f5cb2c86 100644
index 2ef12f92c5f002294bc3bf81e429b60378bbd75f..a1969d56e5c3088812737c591d6a59fd8875e6b9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1941,6 +1941,7 @@ public class PurpurWorldConfig {
@@ -2056,6 +2056,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 257609405527a2f3256dbdebd8681fe436f5fdc3..dffb0fc28eca9a75f4e4bd30dee33f03
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1962,6 +1963,7 @@ public class PurpurWorldConfig {
@@ -2078,6 +2079,7 @@ public class PurpurWorldConfig {
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
@@ -50,7 +50,7 @@ index 257609405527a2f3256dbdebd8681fe436f5fdc3..dffb0fc28eca9a75f4e4bd30dee33f03
}
public boolean vindicatorRidable = false;
@@ -1988,6 +1990,7 @@ public class PurpurWorldConfig {
@@ -2107,6 +2109,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
@@ -58,7 +58,7 @@ index 257609405527a2f3256dbdebd8681fe436f5fdc3..dffb0fc28eca9a75f4e4bd30dee33f03
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2000,6 +2003,7 @@ public class PurpurWorldConfig {
@@ -2120,6 +2123,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);

View File

@@ -31,10 +31,10 @@ index 13a367d2b5f245f4dd92df03288dc40b81e19603..bd593ec55fcccc1e02cf5683891c5586
pos = pos.below();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b0439ccc8094637cb041370c5a37024f4f24d2d4..423f3c82e0ad1ee56b84fed9f919773386203a89 100644
index e53dc52d78f8aa4bd36c156f4e3f7caed77b1758..eb7faf2a5cf909f0570435bf8656421a44a50ff9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1524,6 +1524,7 @@ public class PurpurWorldConfig {
@@ -1595,6 +1595,7 @@ public class PurpurWorldConfig {
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index b0439ccc8094637cb041370c5a37024f4f24d2d4..423f3c82e0ad1ee56b84fed9f9197733
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1535,6 +1536,7 @@ public class PurpurWorldConfig {
@@ -1607,6 +1608,7 @@ public class PurpurWorldConfig {
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index a66e9826b8283366cec5adb54f79efee47d9df22..6cf8b12e94c17a8111eef5cc0157e4df
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0367d18261ae85f6f38b92e29d38037835ab385f..d282948eac093a3a6bfebe9416c76339f629bc25 100644
index d3e9b9c680a71b4e9cb3d1cb3a91a195cad336ba..894f9d48c54ca251e872ec514b6568a420a0b4f9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2099,6 +2099,7 @@ public class PurpurWorldConfig {
@@ -2222,6 +2222,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index 0367d18261ae85f6f38b92e29d38037835ab385f..d282948eac093a3a6bfebe9416c76339
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2118,6 +2119,7 @@ public class PurpurWorldConfig {
@@ -2242,6 +2243,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

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 525b94c61693cfd7d68305cbf4eb08a87f3ca66a..35cbd013b1d58bb5fd1480922c2bd4307edfb6c3 100644
index cf585d2eaf743d38e06084609ff4c220e096cf71..b0e5146f0cf33f8fbc97c4c51edee252ad06e6a9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -361,9 +361,10 @@ public class Creeper extends Monster implements PowerableMob {
@@ -366,9 +366,10 @@ public class Creeper extends Monster implements PowerableMob {
if (!this.level.isClientSide) {
Explosion.BlockInteraction explosion_effect = (this.level.purpurConfig.creeperBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && level.purpurConfig.creeperAllowGriefing ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.NONE; // Purpur
float f = this.isPowered() ? 2.0F : 1.0F;
@@ -21,10 +21,10 @@ index 525b94c61693cfd7d68305cbf4eb08a87f3ca66a..35cbd013b1d58bb5fd1480922c2bd430
if (!event.isCancelled()) {
this.dead = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a93c89efff74f206e3ebad6c2dae85cf5169c1e8..f05341a46e7e6efbbef0943f957d1898066da475 100644
index fb33eb38503d9eb74ad65edfc2b75d0e2e558422..6dfba9bbc2c25044e8c5a676259f439a2a5348ef 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -880,6 +880,7 @@ public class PurpurWorldConfig {
@@ -899,6 +899,7 @@ public class PurpurWorldConfig {
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
@@ -32,7 +32,7 @@ index a93c89efff74f206e3ebad6c2dae85cf5169c1e8..f05341a46e7e6efbbef0943f957d1898
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -894,6 +895,7 @@ public class PurpurWorldConfig {
@@ -914,6 +915,7 @@ public class PurpurWorldConfig {
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Iron golem poppy calms anger
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 52cc0df083d5a4685fd00f7db0d92b277fb0c994..ff5d6f437b880ab0aa5897089694a620be7eacca 100644
index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..7d181c78b22b7ad03674df6ab7288a2215aa3708 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -96,6 +96,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -101,6 +101,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
protected void registerGoals() {
if (level.purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -17,10 +17,10 @@ index 52cc0df083d5a4685fd00f7db0d92b277fb0c994..ff5d6f437b880ab0aa5897089694a620
this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F));
this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f05341a46e7e6efbbef0943f957d1898066da475..e40a9c01607bf1b85bb6ff0e9f23d38b48743b98 100644
index 6dfba9bbc2c25044e8c5a676259f439a2a5348ef..de6fbcff60def3596a29352b0324d04af9630819 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1291,6 +1291,7 @@ public class PurpurWorldConfig {
@@ -1344,6 +1344,7 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false;
@@ -28,7 +28,7 @@ index f05341a46e7e6efbbef0943f957d1898066da475..e40a9c01607bf1b85bb6ff0e9f23d38b
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1302,6 +1303,7 @@ public class PurpurWorldConfig {
@@ -1356,6 +1357,7 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Breedable parrots
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 de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304bff4ae7af 100644
index ee52e83375521fa41369161356802c305deb605d..d68bb48cf703a3ed0bf843d5c0ab9caad4727214 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -220,6 +220,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -225,6 +225,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 1.25D)); // Purpur
@@ -16,7 +16,7 @@ index de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304b
this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F));
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
this.goalSelector.addGoal(2, new FollowOwnerGoal(this, 1.0D, 5.0F, 1.0F, true));
@@ -334,6 +335,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -339,6 +340,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
}
@@ -24,7 +24,7 @@ index de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304b
return InteractionResult.sidedSuccess(this.level.isClientSide);
} else if (itemstack.is(Parrot.POISONOUS_FOOD)) {
if (!player.getAbilities().instabuild) {
@@ -359,7 +361,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -364,7 +366,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean isFood(ItemStack stack) {
@@ -33,7 +33,7 @@ index de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304b
}
public static boolean checkParrotSpawnRules(EntityType<Parrot> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
@@ -376,13 +378,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -381,13 +383,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean canMate(Animal other) {
@@ -50,18 +50,18 @@ index de702ce3e2dffc44e380b8470aa540a3226a54cb..bb9717d1b2039469aae26e0eb9a4304b
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e40a9c01607bf1b85bb6ff0e9f23d38b48743b98..438bc081a07e33fa250b4daee9894e8cf74edfe4 100644
index de6fbcff60def3596a29352b0324d04af9630819..b398535d5b84c2c17d66296dff4b311f3ea110f4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1447,6 +1447,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 256D;
@@ -1512,6 +1512,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
+ public boolean parrotBreedable = false;
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1458,6 +1459,7 @@ public class PurpurWorldConfig {
@@ -1524,6 +1525,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bee can work when raining or at night
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 0f3848287798dcaa57a99b531202e23fe8d05744..9fa2359662079f406ca6204fa06d5dbfefec49d5 100644
index 0c0c900d07d2869baa5fdd669ceecf4ad3477807..c69d0cc9ed74e4e06465aebff07b6b50c227fb28 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -406,7 +406,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -411,7 +411,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
boolean wantsToEnterHive() {
if (this.stayOutOfHiveCountdown <= 0 && !this.beePollinateGoal.isPollinating() && !this.hasStung() && this.getTarget() == null) {
@@ -31,10 +31,10 @@ index 375f25807ca0f35784653d8fbe4e5086d7033e99..096308b577c68502fed1f4c10c0dfc2a
return false;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2a7b4120502d72f4f5ce0cdccc084c0a5bc6bf83..8c41f8e4c88596ad225cfa48e69fa0ecf6d10766 100644
index 16de2736966c52994836377418d7f642789f91b0..1e0d78ae199e7d3a240b94e44128e254c4762f7f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -754,6 +754,8 @@ public class PurpurWorldConfig {
@@ -759,6 +759,8 @@ public class PurpurWorldConfig {
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
public boolean beeTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index 2a7b4120502d72f4f5ce0cdccc084c0a5bc6bf83..8c41f8e4c88596ad225cfa48e69fa0ec
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -766,6 +768,8 @@ public class PurpurWorldConfig {
@@ -772,6 +774,8 @@ public class PurpurWorldConfig {
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index c709099a06f6cb9313c7e99f3b66b463b31e751a..ffccf99ae6eb4a20104ce897cb9f1a9356dd23c7 100644
index 66788c374deb9a499841e0b28fcf34999e55c742..542d502ad0080e20971e1fddff54504dd23b0bf1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4431,5 +4431,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -4435,5 +4435,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
public boolean canSaveToDisk() {
return true;
}
@@ -89,10 +89,10 @@ index 26717a4172ef299a3b4ab4384f8c23dc853bb485..12517438b8b8366a37165cb057dfc040
public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index fa23e24708f4d9e1f50e54cda76113a9a7695c0a..e9aa614a7a93286e5077ffa43a8aebbaab6f4ac2 100644
index 1060f3f27eb5cb205629e939c2a106dfa69d5626..487ceabadd9a38b89de64ccdfbd97ba6304c9ced 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1664,17 +1664,7 @@ public abstract class Mob extends LivingEntity {
@@ -1662,17 +1662,7 @@ public abstract class Mob extends LivingEntity {
}
public boolean isSunBurnTick() {
@@ -188,7 +188,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index 5458ac83fa555e22ca858f4f596ebb8f37926dd5..ca5683e9b0b4aad3827fe6d00198da8e5b6a69ec 100644
index 065005c13c2bff341402fc962d19148da27bc3c2..e394b6427329f48a85a277eeb8336b12499525ee 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -20,6 +20,7 @@ public class Husk extends Zombie {
@@ -199,7 +199,7 @@ index 5458ac83fa555e22ca858f4f596ebb8f37926dd5..ca5683e9b0b4aad3827fe6d00198da8e
}
// Purpur start
@@ -70,7 +71,7 @@ public class Husk extends Zombie {
@@ -75,7 +76,7 @@ public class Husk extends Zombie {
@Override
public boolean isSunSensitive() {
@@ -209,7 +209,7 @@ index 5458ac83fa555e22ca858f4f596ebb8f37926dd5..ca5683e9b0b4aad3827fe6d00198da8e
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 843335bcbdfef0c705dd95beeef8b4f61063f028..5979d8446ae71e365aa65871808af00fae316016 100644
index 18b0a62a7ae7cf2413c319f402672ef2a6ee415f..2ae234b2e3f7949fe852d341a5feca9a6738075a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -220,16 +220,16 @@ index 843335bcbdfef0c705dd95beeef8b4f61063f028..5979d8446ae71e365aa65871808af00f
}
// Purpur start
@@ -249,7 +250,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -254,7 +255,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public void aiStep() {
- if (this.isAlive() && getRider() == null && (((shouldBurnInDay && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
+ if (this.isAlive() && getRider() == null && (((shouldBurnInDay() && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
- if (this.isAlive() && (getRider() == null || !this.isControllable()) && (((shouldBurnInDay && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
+ if (this.isAlive() && (getRider() == null || !this.isControllable()) && (((shouldBurnInDay() && level.purpurConfig.phantomBurnInDaylight) && this.isSunBurnTick()) || (level.purpurConfig.phantomBurnInLight > 0 && level.getMaxLocalRawBrightness(blockPosition()) >= level.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur
this.setSecondsOnFire(8);
}
@@ -281,7 +282,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -286,7 +287,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.spawningEntity = nbt.getUUID("Paper.SpawningEntity");
}
if (nbt.contains("Paper.ShouldBurnInDay")) {
@@ -238,7 +238,7 @@ index 843335bcbdfef0c705dd95beeef8b4f61063f028..5979d8446ae71e365aa65871808af00f
}
// Paper end
}
@@ -297,7 +298,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -302,7 +303,7 @@ public class Phantom extends FlyingMob implements Enemy {
if (this.spawningEntity != null) {
nbt.putUUID("Paper.SpawningEntity", this.spawningEntity);
}
@@ -247,7 +247,7 @@ index 843335bcbdfef0c705dd95beeef8b4f61063f028..5979d8446ae71e365aa65871808af00f
// Paper end
}
@@ -358,7 +359,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -363,7 +364,7 @@ public class Phantom extends FlyingMob implements Enemy {
}
public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; }
@@ -257,7 +257,7 @@ index 843335bcbdfef0c705dd95beeef8b4f61063f028..5979d8446ae71e365aa65871808af00f
public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; }
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index e4ead1ced18f16715440c8562a89d7d359add98e..9a4806baab135128f30ad9be4369bbe1e543c6df 100644
index 4b288fe8923bb4beefb88e8196bfb4d5d2b10b8b..e4e357af439c9a02b8013ce3349ff582495ee80e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -93,11 +93,12 @@ public class Zombie extends Monster {
@@ -274,7 +274,7 @@ index e4ead1ced18f16715440c8562a89d7d359add98e..9a4806baab135128f30ad9be4369bbe1
}
public Zombie(Level world) {
@@ -289,30 +290,7 @@ public class Zombie extends Monster {
@@ -294,30 +295,7 @@ public class Zombie extends Monster {
@Override
public void aiStep() {
@@ -306,7 +306,7 @@ index e4ead1ced18f16715440c8562a89d7d359add98e..9a4806baab135128f30ad9be4369bbe1
super.aiStep();
}
@@ -350,6 +328,7 @@ public class Zombie extends Monster {
@@ -355,6 +333,7 @@ public class Zombie extends Monster {
}
@@ -314,7 +314,7 @@ index e4ead1ced18f16715440c8562a89d7d359add98e..9a4806baab135128f30ad9be4369bbe1
public boolean isSunSensitive() {
return this.shouldBurnInDay; // Paper - use api value instead
}
@@ -479,7 +458,7 @@ public class Zombie extends Monster {
@@ -484,7 +463,7 @@ public class Zombie extends Monster {
nbt.putBoolean("CanBreakDoors", this.canBreakDoors());
nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1);
nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1);
@@ -323,7 +323,7 @@ index e4ead1ced18f16715440c8562a89d7d359add98e..9a4806baab135128f30ad9be4369bbe1
}
@Override
@@ -493,7 +472,7 @@ public class Zombie extends Monster {
@@ -498,7 +477,7 @@ public class Zombie extends Monster {
}
// Paper start
if (nbt.contains("Paper.ShouldBurnInDay")) {

View File

@@ -13,10 +13,10 @@ Subject: [PATCH] Shulker spawn from bullet options
(7 - 1) / 5.0 = 1.2 1.0 - 1.2 = -0.2 0% (6 other shulkers)
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index 0cef642b6b13347b953f59e1bca909aa7451b851..ec7c5f638573ee331112d91cdfaa8511801c6891 100644
index ae22748c9cefd000986d50e12fa9cb2a545ad63c..edaa34c6c2c65df77c696b4654e64bcf37a3ff20 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -501,13 +501,22 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -506,13 +506,22 @@ public class Shulker extends AbstractGolem implements Enemy {
Vec3 vec3d = this.position();
AABB axisalignedbb = this.getBoundingBox();
@@ -61,11 +61,11 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 13d14c46e801ea76a4aa8a15d8531b4eb5dfa549..743ef4d887577b8fba8b43137650ae8e5d300a7f 100644
index a970b7721dc0ff0303a80fe83c8342ed762153b1..bc4939abd4b3c2fe5c9866759963b79a4318ce92 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1799,6 +1799,11 @@ public class PurpurWorldConfig {
public boolean shulkerRidableInWater = false;
@@ -1888,6 +1888,11 @@ public class PurpurWorldConfig {
public boolean shulkerControllable = true;
public double shulkerMaxHealth = 30.0D;
public boolean shulkerTakeDamageFromWater = false;
+ public float shulkerSpawnFromBulletBaseChance = 1.0F;
@@ -76,7 +76,7 @@ index 13d14c46e801ea76a4aa8a15d8531b4eb5dfa549..743ef4d887577b8fba8b43137650ae8e
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1809,6 +1814,11 @@ public class PurpurWorldConfig {
@@ -1899,6 +1904,11 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to make drowned break doors
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326fd901f27b 100644
index a2f71b1ba0df62910df528103e8695a2762fe1df..699d4f1a60bb15a04dddbce6486ce10abd417a87 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -30,6 +30,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal;
@@ -16,7 +16,7 @@ index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326f
import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
import net.minecraft.world.entity.ai.navigation.GroundPathNavigation;
@@ -118,6 +119,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -123,6 +124,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
this.goalSelector.addGoal(2, new Drowned.DrownedAttackGoal(this, 1.0D, false));
this.goalSelector.addGoal(5, new Drowned.DrownedGoToBeachGoal(this, 1.0D));
this.goalSelector.addGoal(6, new Drowned.DrownedSwimUpGoal(this, 1.0D, this.level.getSeaLevel()));
@@ -24,7 +24,7 @@ index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326f
this.goalSelector.addGoal(7, new RandomStrollGoal(this, 1.0D));
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, Drowned.class)).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::okTarget));
@@ -170,7 +172,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -175,7 +177,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@Override
public boolean supportsBreakDoorGoal() {
@@ -34,10 +34,10 @@ index 4d2bb12b8168fceae71622a9f8bd5102d0024208..a592fb29097232d5d9c6e6d946fb326f
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 15a586bc5249bc32d3bdfb0c973e07229b9d8c34..18f06ee01a3d20d51eac9d96a20af523a04a1c08 100644
index af024fb85a500b6c73e099f2e69535da4e693629..d3f73582dc2d732710ce6f6a2ca6a7f2353afe8e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1014,6 +1014,7 @@ public class PurpurWorldConfig {
@@ -1037,6 +1037,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
@@ -45,7 +45,7 @@ index 15a586bc5249bc32d3bdfb0c973e07229b9d8c34..18f06ee01a3d20d51eac9d96a20af523
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1028,6 +1029,7 @@ public class PurpurWorldConfig {
@@ -1052,6 +1053,7 @@ public class PurpurWorldConfig {
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 18f06ee01a3d20d51eac9d96a20af523a04a1c08..59cee8f525b3158d1c69c10b8e1460ccb254c7f5 100644
index d3f73582dc2d732710ce6f6a2ca6a7f2353afe8e..cfda7bc71e1dc74636fdf57aa897c50bb0382535 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2386,4 +2386,9 @@ public class PurpurWorldConfig {
@@ -2522,4 +2522,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

@@ -5,7 +5,7 @@ Subject: [PATCH] Summoner API
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index ff5d6f437b880ab0aa5897089694a620be7eacca..dd328a4514ef3638a44442797cbc616dbaef1f72 100644
index 7d181c78b22b7ad03674df6ab7288a2215aa3708..849a2aec719c8755409668fd6a7c4899eff4f882 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -64,6 +64,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -16,7 +16,7 @@ index ff5d6f437b880ab0aa5897089694a620be7eacca..dd328a4514ef3638a44442797cbc616d
public IronGolem(EntityType<? extends IronGolem> type, Level world) {
super(type, world);
@@ -90,6 +91,15 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -95,6 +96,15 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.ironGolemTakeDamageFromWater;
}
@@ -32,7 +32,7 @@ index ff5d6f437b880ab0aa5897089694a620be7eacca..dd328a4514ef3638a44442797cbc616d
// Purpur end
@Override
@@ -175,6 +185,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -180,6 +190,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
nbt.putBoolean("PlayerCreated", this.isPlayerCreated());
@@ -40,7 +40,7 @@ index ff5d6f437b880ab0aa5897089694a620be7eacca..dd328a4514ef3638a44442797cbc616d
this.addPersistentAngerSaveData(nbt);
}
@@ -182,6 +193,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -187,6 +198,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt);
this.setPlayerCreated(nbt.getBoolean("PlayerCreated"));
@@ -49,7 +49,7 @@ index ff5d6f437b880ab0aa5897089694a620be7eacca..dd328a4514ef3638a44442797cbc616d
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 9581dccfd671d89d296d3b07fb45a0234d110395..1e646078c4522aaad4e298172af6972a940cdf5c 100644
index 5695cdb6a621d24a3795220a66ea94dfa1dbba52..4a33a9a439ca7f9bdb40ea15a721a30f6028f14a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -49,6 +49,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -60,7 +60,7 @@ index 9581dccfd671d89d296d3b07fb45a0234d110395..1e646078c4522aaad4e298172af6972a
public SnowGolem(EntityType<? extends SnowGolem> type, Level world) {
super(type, world);
@@ -69,6 +70,15 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -74,6 +75,15 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.snowGolemMaxHealth);
}
@@ -76,7 +76,7 @@ index 9581dccfd671d89d296d3b07fb45a0234d110395..1e646078c4522aaad4e298172af6972a
// Purpur end
@Override
@@ -98,6 +108,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -103,6 +113,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
nbt.putBoolean("Pumpkin", this.hasPumpkin());
@@ -84,7 +84,7 @@ index 9581dccfd671d89d296d3b07fb45a0234d110395..1e646078c4522aaad4e298172af6972a
}
@Override
@@ -106,6 +117,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -111,6 +122,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
if (nbt.contains("Pumpkin")) {
this.setPumpkin(nbt.getBoolean("Pumpkin"));
}
@@ -93,7 +93,7 @@ index 9581dccfd671d89d296d3b07fb45a0234d110395..1e646078c4522aaad4e298172af6972a
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 5ef45fe1dac1df779727f9c441f7e6515185e507..46b8886b6b17fa145db42aeb380f22ec0ae99ec0 100644
index d7d9500b0c10b5091910610651bcf85524b67a47..4778a33cef472b959aa645e6cd495204d3c8975f 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -86,6 +86,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -104,7 +104,7 @@ index 5ef45fe1dac1df779727f9c441f7e6515185e507..46b8886b6b17fa145db42aeb380f22ec
// Paper start
private boolean canPortal = false;
@@ -223,6 +224,15 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -228,6 +229,15 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
public boolean isSensitiveToWater() {
return this.level.purpurConfig.witherTakeDamageFromWater;
}
@@ -120,7 +120,7 @@ index 5ef45fe1dac1df779727f9c441f7e6515185e507..46b8886b6b17fa145db42aeb380f22ec
// Purpur end
@Override
@@ -251,6 +261,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -256,6 +266,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
nbt.putInt("Invul", this.getInvulnerableTicks());
@@ -128,7 +128,7 @@ index 5ef45fe1dac1df779727f9c441f7e6515185e507..46b8886b6b17fa145db42aeb380f22ec
}
@Override
@@ -260,6 +271,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -265,6 +276,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
if (this.hasCustomName()) {
this.bossEvent.setName(this.getDisplayName());
}

View File

@@ -24,7 +24,7 @@ index 02fc3ede12eadbf72e26e31b1c475c7f5b2ad73a..2288e727929ffb3a3bca138fb0289408
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0077e4e3f5dbf1a5a692f5cbeeb8e72b8a737070..301e2afd4ed73ebcf6996a2baec52d462d972d0f 100644
index 5f8c3bb92cb1a43a2d74698c2801e8f79a0279f0..f31ea8c7e3354d890c593c2c1f10578d9b3748ed 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -691,6 +691,11 @@ public class PurpurWorldConfig {
@@ -39,7 +39,7 @@ index 0077e4e3f5dbf1a5a692f5cbeeb8e72b8a737070..301e2afd4ed73ebcf6996a2baec52d46
public boolean chestOpenWithBlockOnTop = false;
private void chestSettings() {
chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop);
@@ -2545,3 +2550,4 @@ public class PurpurWorldConfig {
@@ -2681,3 +2686,4 @@ public class PurpurWorldConfig {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}
}

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Config to disable Enderman teleport on projectile hit
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index fa2d6b478ed420e36622a0bde48131661d483d8b..a20b888ba856b8c588af5cad5c2d72874f3aeaea 100644
index eb1f02840ae230f9195d72d0ece9553bf72bba3f..1426d3ab3731f849cf88ed1b5e60b694c572ad71 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -406,7 +406,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -411,7 +411,7 @@ public class EnderMan extends Monster implements NeutralMob {
return false;
} else if (getRider() != null) { return super.hurt(source, amount); // Purpur - no teleporting on damage
} else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage
} else if (org.purpurmc.purpur.PurpurConfig.endermanShortHeight && source == DamageSource.IN_WALL) { return false; // Purpur - no suffocation damage if short height
- } else if (source instanceof IndirectEntityDamageSource) {
+ } else if (source instanceof IndirectEntityDamageSource && !(this.level.purpurConfig.endermanIgnoreProjectiles && source.getDirectEntity() instanceof net.minecraft.world.entity.projectile.Projectile)) { // Purpur
@@ -18,10 +18,10 @@ index fa2d6b478ed420e36622a0bde48131661d483d8b..a20b888ba856b8c588af5cad5c2d7287
boolean flag;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1075358dba79c3e4a7593ed4bb5506a41126a68f..a60b0799765cd2cb06cb958aad49f81c5c4b39e5 100644
index 4d8cd5f5235b15627b10f3dabb9df65cb55a5834..00d62e7008a2faa65c11d6c8419f79c62224fd1d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1261,6 +1261,7 @@ public class PurpurWorldConfig {
@@ -1290,6 +1290,7 @@ public class PurpurWorldConfig {
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
public boolean endermanIgnorePlayerDragonHead = false;
public boolean endermanDisableStareAggro = false;
@@ -29,7 +29,7 @@ index 1075358dba79c3e4a7593ed4bb5506a41126a68f..a60b0799765cd2cb06cb958aad49f81c
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1282,6 +1283,7 @@ public class PurpurWorldConfig {
@@ -1312,6 +1313,7 @@ public class PurpurWorldConfig {
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);
endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead);
endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro);

View File

@@ -20,10 +20,10 @@ index 0be0c81f2b0a58eba75eb8559f78d8a58014d0ae..f7088aaf65ee5725e928845a63485211
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e61687112a49037c9b0c1677e09bb76ed24c02bb..c29c2eefb2dab541691f88f315fdea88343a0a96 100644
index 55f4ff90bd2f9f8138a9a352dd40dfbd1ee98073..9694150ed4832169ed12f8e95cf2d87ada688978 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1459,6 +1459,7 @@ public class PurpurWorldConfig {
@@ -1507,6 +1507,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMax = 0.3375D;
public int horseBreedingTicks = 6000;
public boolean horseTakeDamageFromWater = false;
@@ -31,7 +31,7 @@ index e61687112a49037c9b0c1677e09bb76ed24c02bb..c29c2eefb2dab541691f88f315fdea88
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1476,6 +1477,7 @@ public class PurpurWorldConfig {
@@ -1524,6 +1525,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Customizeable Zombie Villager curing times
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 96e5d1210e27b0bca7a354366e5c805709ae4fec..c6ba41c2b4cc96bc97ed2e2220c0f3fa4f31dbe3 100644
index 92d527081abd35acc646f66a0714f2dc01706dfe..02763379210a45a83b34c6acd6cb37c536e5ba36 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -209,7 +209,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -214,7 +214,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
if (!this.level.isClientSide) {
@@ -18,10 +18,10 @@ index 96e5d1210e27b0bca7a354366e5c805709ae4fec..c6ba41c2b4cc96bc97ed2e2220c0f3fa
this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8462308f580c6f9b07e5eb48f309fd912966c0d9..56e0b447409edf09bd495fa48f64ef0ff2b67ed6 100644
index 51f82229af375f2cc9605fe33c912c2dec129ed7..f6657d08d19d8617b439097779b56c9f3c5c36c5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2534,6 +2534,8 @@ public class PurpurWorldConfig {
@@ -2667,6 +2667,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
@@ -30,7 +30,7 @@ index 8462308f580c6f9b07e5eb48f309fd912966c0d9..56e0b447409edf09bd495fa48f64ef0f
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2548,6 +2550,8 @@ public class PurpurWorldConfig {
@@ -2682,6 +2684,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

@@ -5,10 +5,10 @@ Subject: [PATCH] Toggle for Wither's spawn sound
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 46b8886b6b17fa145db42aeb380f22ec0ae99ec0..1cab4c037c99babf4e35480de7ffc02be0c28583 100644
index 4778a33cef472b959aa645e6cd495204d3c8975f..e30d8bfb4269e872c20a9bf91348dd3685a9332c 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -414,7 +414,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -419,7 +419,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
}
// CraftBukkit end
@@ -18,10 +18,10 @@ index 46b8886b6b17fa145db42aeb380f22ec0ae99ec0..1cab4c037c99babf4e35480de7ffc02b
// this.world.globalLevelEvent(1023, new BlockPosition(this), 0);
//int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7e94407fa58ae86f48b27a3bbe2c04e33eebecf9..09eda8b4da4e4a51277e71f53ae5db855b2d7f04 100644
index a49e363d975ac3a239e984c16f6a06250a1c3d40..fb68e14c61ce224453ddbf9d59dc676f001739f6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2389,6 +2389,7 @@ public class PurpurWorldConfig {
@@ -2512,6 +2512,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
@@ -29,7 +29,7 @@ index 7e94407fa58ae86f48b27a3bbe2c04e33eebecf9..09eda8b4da4e4a51277e71f53ae5db85
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2409,6 +2410,7 @@ public class PurpurWorldConfig {
@@ -2533,6 +2534,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

@@ -44,10 +44,10 @@ index 96b6e914441ee1faa059aa5ddcf77ffb74e76ae9..31af7d8111e73169d3e02aa52799a018
}
CraftEventFactory.blockDamage = null;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8f8a8d00fe47a9dc0248c27122212de4e7b3fab3..3f281e92a63dc69b25e19d93757d652bef5df0c5 100644
index 02d090b33eae57d6c0996f61626acd7438ded7cb..4eb2347ecc0e4ed730a114ce75df860b493313a5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2595,5 +2595,28 @@ public class PurpurWorldConfig {
@@ -2731,5 +2731,28 @@ public class PurpurWorldConfig {
private void hungerSettings() {
hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage);
}

View File

@@ -18,10 +18,10 @@ index dbae4f3b56d0290c6d28b9beaaa3b459754d43e3..676184c48c3abd8e2fb9a04ae3e165dc
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3f281e92a63dc69b25e19d93757d652bef5df0c5..b8cf6e9037184d5945887748fb9fbfc8bcbc0f2a 100644
index 4eb2347ecc0e4ed730a114ce75df860b493313a5..c71b53a9f9456f666c7ad73737a4adfd6da92da8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2618,5 +2618,12 @@ public class PurpurWorldConfig {
@@ -2754,5 +2754,12 @@ public class PurpurWorldConfig {
});
conduitBlocks = conduitBlockList.toArray(Block[]::new);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Shulker change color with dye
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index ec7c5f638573ee331112d91cdfaa8511801c6891..e9f4a1de40ab4d7a82d4f222b4aba0aaaef05c88 100644
index edaa34c6c2c65df77c696b4654e64bcf37a3ff20..e63a27abef4b9aab0c2afbb92da994e8a11ac14a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -22,6 +22,8 @@ import net.minecraft.sounds.SoundSource;
@@ -26,7 +26,7 @@ index ec7c5f638573ee331112d91cdfaa8511801c6891..e9f4a1de40ab4d7a82d4f222b4aba0aa
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.block.Blocks;
@@ -112,6 +116,19 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -117,6 +121,19 @@ public class Shulker extends AbstractGolem implements Enemy {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.shulkerTakeDamageFromWater;
}
@@ -47,10 +47,10 @@ index ec7c5f638573ee331112d91cdfaa8511801c6891..e9f4a1de40ab4d7a82d4f222b4aba0aa
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a6909960d14de6c0ecea4f47902d73def5441ffa..8d63f5a8100792946d898a1caa715e34631d16d0 100644
index 6c9fb5443821fd7f3ae7a8a4fc8352ab8d998f40..cc8d3cb84a0b5a852845b75467d64861721b7ae4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2008,6 +2008,7 @@ public class PurpurWorldConfig {
@@ -2097,6 +2097,7 @@ public class PurpurWorldConfig {
public double shulkerSpawnFromBulletNearbyRange = 8.0D;
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false;
@@ -58,7 +58,7 @@ index a6909960d14de6c0ecea4f47902d73def5441ffa..8d63f5a8100792946d898a1caa715e34
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2023,6 +2024,7 @@ public class PurpurWorldConfig {
@@ -2113,6 +2114,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange);
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dolphins naturally aggressive to players chance
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367db26711d 100644
index 2dba75b221022b1f6d0d68813c992bc796d499c5..8a5230611e4a9835f1b8b21cf09a7054da76feb9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -75,6 +75,7 @@ public class Dolphin extends WaterAnimal {
@@ -16,7 +16,7 @@ index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367
public Dolphin(EntityType<? extends Dolphin> type, Level world) {
super(type, world);
@@ -165,6 +166,7 @@ public class Dolphin extends WaterAnimal {
@@ -170,6 +171,7 @@ public class Dolphin extends WaterAnimal {
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.setAirSupply(this.getMaxAirSupply());
this.setXRot(0.0F);
@@ -24,7 +24,7 @@ index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
}
@@ -235,18 +237,20 @@ public class Dolphin extends WaterAnimal {
@@ -240,18 +242,20 @@ public class Dolphin extends WaterAnimal {
this.goalSelector.addGoal(0, new BreathAirGoal(this));
this.goalSelector.addGoal(0, new TryFindWaterGoal(this));
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -47,18 +47,18 @@ index 49e5a753aae7d72102ee700f3d8309f2f488cc12..022441af276cd9facba1ee4013d9d367
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e777d8fe1e503547763de30706655896767349ae..d0daf9143e941e9f658b5e14145adc1f3af91150 100644
index 4a6f833c483cde70307417b54e6cf85d68703fee..aa4ea8ffd71f67c3e7c66cd3ce2f7ed37fc7b1e2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1175,6 +1175,7 @@ public class PurpurWorldConfig {
@@ -1196,6 +1196,7 @@ public class PurpurWorldConfig {
public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false;
+ public double dolphinNaturallyAggressiveToPlayersChance = 0.0D;
private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinSpitCooldown = getInt("mobs.dolphin.spit.cooldown", dolphinSpitCooldown);
@@ -1188,6 +1189,7 @@ public class PurpurWorldConfig {
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -1210,6 +1211,7 @@ public class PurpurWorldConfig {
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Cows naturally aggressive to players chance
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 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9ccbcbcf60 100644
index 00eec3f51e62858e7b85b3340e76bf66bfd4370f..90e48fed68fab8e5e9f43bbeffd3a42a2ee51807 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
@@ -37,6 +37,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack;
@@ -16,7 +16,7 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c
public Cow(EntityType<? extends Cow> type, Level world) {
super(type, world);
@@ -56,6 +57,7 @@ public class Cow extends Animal {
@@ -61,6 +62,7 @@ public class Cow extends Animal {
@Override
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.cowMaxHealth);
@@ -24,7 +24,7 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c
}
@Override
@@ -67,6 +69,12 @@ public class Cow extends Animal {
@@ -72,6 +74,12 @@ public class Cow extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.cowTakeDamageFromWater;
}
@@ -37,7 +37,7 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c
// Purpur end
@Override
@@ -74,6 +82,7 @@ public class Cow extends Animal {
@@ -79,6 +87,7 @@ public class Cow extends Animal {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
@@ -45,7 +45,7 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
if (level.purpurConfig.cowFeedMushrooms > 0) this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT, Blocks.RED_MUSHROOM.asItem(), Blocks.BROWN_MUSHROOM.asItem()), false)); else // Purpur
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT), false));
@@ -81,10 +90,11 @@ public class Cow extends Animal {
@@ -86,10 +95,11 @@ public class Cow extends Animal {
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(7, new RandomLookAroundGoal(this));
@@ -59,10 +59,10 @@ index 7042b95e92520c5e152af0fa71a553122ec814df..bbd210f8779138b225ce886b3917ca9c
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d0daf9143e941e9f658b5e14145adc1f3af91150..61cfb6a37139fc2a9ce11f4bd0d557f490afc6d9 100644
index aa4ea8ffd71f67c3e7c66cd3ce2f7ed37fc7b1e2..f5a03a25b5e90c9f42795923da83841be27dc6ee 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1128,7 +1128,14 @@ public class PurpurWorldConfig {
@@ -1145,7 +1145,14 @@ public class PurpurWorldConfig {
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
public boolean cowTakeDamageFromWater = false;
@@ -76,8 +76,8 @@ index d0daf9143e941e9f658b5e14145adc1f3af91150..61cfb6a37139fc2a9ce11f4bd0d557f4
+ }
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1140,6 +1147,8 @@ public class PurpurWorldConfig {
cowControllable = getBoolean("mobs.cow.controllable", cowControllable);
@@ -1158,6 +1165,8 @@ public class PurpurWorldConfig {
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);

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 31ca5ddf748313f7d6cdee906d13e8dcb616875d..5e9d901d5fd545b94dd04267b90b3f32a3dd881c 100644
index 21f9384b647264c72675889fdda2613031a57c5d..6930429c5ac77768d4ef7ad2dc38778b475a8bd4 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1169,6 +1169,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1174,6 +1174,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public void startSleeping(BlockPos pos) {
@@ -22,7 +22,7 @@ index 31ca5ddf748313f7d6cdee906d13e8dcb616875d..5e9d901d5fd545b94dd04267b90b3f32
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 61cfb6a37139fc2a9ce11f4bd0d557f490afc6d9..873b0f9f300990b856d5e4d441053cf4f8d81dda 100644
index f5a03a25b5e90c9f42795923da83841be27dc6ee..588c0beee5a48757f3d98774b06bddca4741855c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -702,11 +702,13 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Halloween options and optimizations
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index c1a2bfb521ba72e4d1b29aa3e0c72e0c28a652be..3babc327941ba56549fa0e44f020c932efbfc6bd 100644
index f6b289cea5962ef56e5c9daa1122989bbabde00e..062b99e9586199454c3948d37aa66f866b8b644d 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -312,7 +312,7 @@ public class Bat extends AmbientCreature {
@@ -317,7 +317,7 @@ public class Bat extends AmbientCreature {
int i = world.getMaxLocalRawBrightness(pos);
byte b0 = 4;
@@ -17,7 +17,7 @@ index c1a2bfb521ba72e4d1b29aa3e0c72e0c28a652be..3babc327941ba56549fa0e44f020c932
b0 = 7;
} else if (random.nextBoolean()) {
return false;
@@ -326,6 +326,7 @@ public class Bat extends AmbientCreature {
@@ -331,6 +331,7 @@ public class Bat extends AmbientCreature {
private static boolean isSpookySeason = false;
private static final int ONE_HOUR = 20 * 60 * 60;
private static int lastSpookyCheck = -ONE_HOUR;
@@ -43,10 +43,10 @@ index 193622015c6d3dbff787061e13fa098a287bce0c..1c48ac2f0b6cfee952ce5e76d7d88603
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 9a4806baab135128f30ad9be4369bbe1e543c6df..e4fd49d3c3f4be6d165dd1e1f6bb24a069bc634a 100644
index e4e357af439c9a02b8013ce3349ff582495ee80e..dd879f7f879d42546e84cb2eebcea7c2f6acf8cd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -570,11 +570,7 @@ public class Zombie extends Monster {
@@ -575,11 +575,7 @@ public class Zombie extends Monster {
}
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
@@ -60,10 +60,10 @@ index 9a4806baab135128f30ad9be4369bbe1e543c6df..e4fd49d3c3f4be6d165dd1e1f6bb24a0
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 873b0f9f300990b856d5e4d441053cf4f8d81dda..30fbcf65e7d31bccce1e86a32df527557de05496 100644
index 588c0beee5a48757f3d98774b06bddca4741855c..d8bb4d769f5e8ef8fa7d7a38a7cf07c1bf319faf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1479,6 +1479,13 @@ public class PurpurWorldConfig {
@@ -1525,6 +1525,13 @@ public class PurpurWorldConfig {
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}
@@ -76,4 +76,4 @@ index 873b0f9f300990b856d5e4d441053cf4f8d81dda..30fbcf65e7d31bccce1e86a32df52755
+
public boolean hoglinRidable = false;
public boolean hoglinRidableInWater = false;
public double hoglinMaxHealth = 40.0D;
public boolean hoglinControllable = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to disable zombie villagers cure
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index c6ba41c2b4cc96bc97ed2e2220c0f3fa4f31dbe3..22a5d2f0de4bdd4432d1beff840f448a30985188 100644
index 02763379210a45a83b34c6acd6cb37c536e5ba36..1e3969d0a462e5e8270128dbc22a4d09683f3da9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -203,7 +203,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -208,7 +208,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
ItemStack itemstack = player.getItemInHand(hand);
if (itemstack.is(Items.GOLDEN_APPLE)) {
@@ -18,10 +18,10 @@ index c6ba41c2b4cc96bc97ed2e2220c0f3fa4f31dbe3..22a5d2f0de4bdd4432d1beff840f448a
itemstack.shrink(1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f8d5d37afe4ce8f884b927447b0875f3b6e08171..410f15b1aa575cba890ec1ed66476cc4fa03797e 100644
index b1a823bb8c6740d9a37c42eb49dc618c62414505..4cf4e592436ffb8b2f984ea5d3908056261b063e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2598,6 +2598,7 @@ public class PurpurWorldConfig {
@@ -2731,6 +2731,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index f8d5d37afe4ce8f884b927447b0875f3b6e08171..410f15b1aa575cba890ec1ed66476cc4
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2614,6 +2615,7 @@ public class PurpurWorldConfig {
@@ -2748,6 +2749,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);

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to prevent spiders from climbing world border
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 032bc56ad7700d1ba79efbce32654c57a9434711..1f6183c4fe55168c5a234c6258fb46d49cee3b2d 100644
index e4b6bdf0d9ac751094374f5f6197ebd2fe22c652..16ac7a216464f1f1ef1db8278c58574af4988171 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -234,6 +234,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
@@ -26,10 +26,10 @@ index 032bc56ad7700d1ba79efbce32654c57a9434711..1f6183c4fe55168c5a234c6258fb46d4
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index f85daf21ae3d77d2d56c131c6df9aa0715a306ca..6ef3cf19e5374631602e68d15ad431fc1a747ea5 100644
index 177f9fe0d0a10e5d3644805751f2050fe984fde7..07dc3b10a275895f23fcf50720ef25faea358c58 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -113,7 +113,7 @@ public class Spider extends Monster {
@@ -118,7 +118,7 @@ public class Spider extends Monster {
public void tick() {
super.tick();
if (!this.level.isClientSide) {
@@ -39,10 +39,10 @@ index f85daf21ae3d77d2d56c131c6df9aa0715a306ca..6ef3cf19e5374631602e68d15ad431fc
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7134fbde05d461cb130b19fbb5917ba9a96293bf..042d93e68f883eda989a08bcffe7be0ff61c8d9b 100644
index b030105bea31453a4cfd978c16d228ff3795f871..f85b3df4b19c3f2692b0419fe406896bf1f6d62e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2359,6 +2359,7 @@ public class PurpurWorldConfig {
@@ -2460,6 +2460,7 @@ public class PurpurWorldConfig {
public double spiderMaxHealth = 16.0D;
public boolean spiderTakeDamageFromWater = false;
public boolean spiderAlwaysDropExp = false;
@@ -50,7 +50,7 @@ index 7134fbde05d461cb130b19fbb5917ba9a96293bf..042d93e68f883eda989a08bcffe7be0f
private void spiderSettings() {
spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable);
spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater);
@@ -2370,6 +2371,7 @@ public class PurpurWorldConfig {
@@ -2472,6 +2473,7 @@ public class PurpurWorldConfig {
spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth);
spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater);
spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Shearing jeb produces random color wool
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 860e03111b29f9178a1cd361357985308a39d254..3e72abd93bc5b9f97c2bd62702273d63b43cc245 100644
index 17d1a0b43b2d155535cf2483af4ba9dd09700c83..fbe71ed86553965aa9fc20b7d8e6fdefd1d85a60 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -288,7 +288,7 @@ public class Sheep extends Animal implements Shearable {
@@ -293,7 +293,7 @@ public class Sheep extends Animal implements Shearable {
for (int j = 0; j < i; ++j) {
this.forceDrops = true; // CraftBukkit
@@ -18,10 +18,10 @@ index 860e03111b29f9178a1cd361357985308a39d254..3e72abd93bc5b9f97c2bd62702273d63
if (entityitem != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7810776e47817c16caee500344f8c1d812b5782e..a5c555e736e8883c485a37d86110777921e07489 100644
index 483a6e1c05b8a103f639d37daeb4ee805e9dba96..638ec0b7d026f0164a73f03fed36c25ba17f53a3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2166,6 +2166,7 @@ public class PurpurWorldConfig {
@@ -2253,6 +2253,7 @@ public class PurpurWorldConfig {
public boolean sheepBypassMobGriefing = false;
public boolean sheepTakeDamageFromWater = false;
public boolean sheepAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index 7810776e47817c16caee500344f8c1d812b5782e..a5c555e736e8883c485a37d861107779
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -2179,6 +2180,7 @@ public class PurpurWorldConfig {
@@ -2267,6 +2268,7 @@ public class PurpurWorldConfig {
sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing);
sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater);
sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp);

View File

@@ -29,10 +29,10 @@ index e44b0c3704ca6b7609f6638e43aa8abe1939bfd8..b23c78fe2ad93a88378af90563e90b96
// 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 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098de355822 100644
index 7f438d507807801f4aff13441bf7b14e46ab8a4a..cd900a8022aa23da4ab2a294c74100fc80fb960d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1237,6 +1237,7 @@ public class PurpurWorldConfig {
@@ -1256,6 +1256,7 @@ public class PurpurWorldConfig {
public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
@@ -40,7 +40,7 @@ index 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1253,6 +1254,7 @@ public class PurpurWorldConfig {
@@ -1273,6 +1274,7 @@ public class PurpurWorldConfig {
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
@@ -48,7 +48,7 @@ index 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098
}
public boolean dolphinRidable = false;
@@ -2240,6 +2242,7 @@ public class PurpurWorldConfig {
@@ -2333,6 +2335,7 @@ public class PurpurWorldConfig {
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
@@ -56,7 +56,7 @@ index 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2251,6 +2254,7 @@ public class PurpurWorldConfig {
@@ -2345,6 +2348,7 @@ public class PurpurWorldConfig {
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
@@ -64,7 +64,7 @@ index 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098
}
public boolean skeletonHorseRidableInWater = true;
@@ -2727,6 +2731,7 @@ public class PurpurWorldConfig {
@@ -2858,6 +2862,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -72,7 +72,7 @@ index 0318508770b956b9278466e6f2d1f724a6f5fd70..f73df2c3cb5c15bf409804de9da14098
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2744,6 +2749,7 @@ public class PurpurWorldConfig {
@@ -2876,6 +2881,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

@@ -37,10 +37,10 @@ index 5e8cc5cfac8888628c6d513148f41be09ca65a2c..a089fc61ec09be6b7490375489178dc6
boolean readyForShearing();
}
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 16b4b6a382db7c81eb19771a4fa0cc3ae73c3645..6fc17adcfd300796579badc5af3ce2e8c1baf928 100644
index 00cfd89f175206b3bb29d3a954f8564077a7115b..08e4dce53f7d2709f64ed41afdb362d5673c534c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -161,7 +161,7 @@ public class MushroomCow extends Cow implements Shearable {
@@ -166,7 +166,7 @@ public class MushroomCow extends Cow implements Shearable {
return tryRide(player, hand); // Purpur
}
// CraftBukkit end
@@ -49,7 +49,7 @@ index 16b4b6a382db7c81eb19771a4fa0cc3ae73c3645..6fc17adcfd300796579badc5af3ce2e8
this.gameEvent(GameEvent.SHEAR, (Entity) player);
if (!this.level.isClientSide) {
itemstack.hurtAndBreak(1, player, (entityhuman1) -> {
@@ -204,7 +204,7 @@ public class MushroomCow extends Cow implements Shearable {
@@ -209,7 +209,7 @@ public class MushroomCow extends Cow implements Shearable {
}
@Override
@@ -58,7 +58,7 @@ index 16b4b6a382db7c81eb19771a4fa0cc3ae73c3645..6fc17adcfd300796579badc5af3ce2e8
this.level.playSound((Player) null, (Entity) this, SoundEvents.MOOSHROOM_SHEAR, shearedSoundCategory, 1.0F, 1.0F);
if (!this.level.isClientSide()) {
((ServerLevel) this.level).sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(0.5D), this.getZ(), 1, 0.0D, 0.0D, 0.0D, 0.0D);
@@ -239,7 +239,7 @@ public class MushroomCow extends Cow implements Shearable {
@@ -244,7 +244,7 @@ public class MushroomCow extends Cow implements Shearable {
this.discard(); // CraftBukkit - from above
// CraftBukkit end
@@ -68,10 +68,10 @@ index 16b4b6a382db7c81eb19771a4fa0cc3ae73c3645..6fc17adcfd300796579badc5af3ce2e8
ItemEntity entityitem = new ItemEntity(this.level, this.getX(), this.getY(1.0D), this.getZ(), new ItemStack(this.getMushroomType().blockState.getBlock()));
EntityDropItemEvent event = new EntityDropItemEvent(this.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity());
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 3e72abd93bc5b9f97c2bd62702273d63b43cc245..6c044f123c0cdcdaec93b6761a117493c4a5bbe8 100644
index fbe71ed86553965aa9fc20b7d8e6fdefd1d85a60..d61204c8aaef5e0e4e79096b6469ce3f6e8f92af 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -266,7 +266,7 @@ public class Sheep extends Animal implements Shearable {
@@ -271,7 +271,7 @@ public class Sheep extends Animal implements Shearable {
return InteractionResult.PASS;
}
// CraftBukkit end
@@ -80,7 +80,7 @@ index 3e72abd93bc5b9f97c2bd62702273d63b43cc245..6c044f123c0cdcdaec93b6761a117493
this.gameEvent(GameEvent.SHEAR, (Entity) player);
itemstack.hurtAndBreak(1, player, (entityhuman1) -> {
entityhuman1.broadcastBreakEvent(hand);
@@ -281,10 +281,11 @@ public class Sheep extends Animal implements Shearable {
@@ -286,10 +286,11 @@ public class Sheep extends Animal implements Shearable {
}
@Override
@@ -94,10 +94,10 @@ index 3e72abd93bc5b9f97c2bd62702273d63b43cc245..6c044f123c0cdcdaec93b6761a117493
for (int j = 0; j < i; ++j) {
this.forceDrops = true; // CraftBukkit
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index d60cb629586e6eccfcd79b1b2e4da119550497f3..465bd5c7401ec29d0c43d9add3b072542a2c7923 100644
index 2396c175433fdfe23b0db0e3303d82c34309a540..dc9694ec29bc1a522a1501caa6e2b63f358fe564 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -195,7 +195,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -200,7 +200,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
return tryRide(player, hand); // Purpur
}
// CraftBukkit end
@@ -106,7 +106,7 @@ index d60cb629586e6eccfcd79b1b2e4da119550497f3..465bd5c7401ec29d0c43d9add3b07254
this.gameEvent(GameEvent.SHEAR, (Entity) player);
if (!this.level.isClientSide) {
itemstack.hurtAndBreak(1, player, (entityhuman1) -> {
@@ -218,12 +218,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -223,12 +223,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
}
@Override

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop bees from dying after stinging
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 350863ed11b62600dc88324283637a01162acd21..6819e007d892ee855d3e9fdab0340538cd81abf8 100644
index e2a3a3e2722c7c5fae232ce30538ccb5fa663b7d..19cc69f9bca1bb86d0a84345ae39a0a18f87fa54 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -451,6 +451,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -456,6 +456,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.hurt(DamageSource.DROWN, 1.0F);
}
@@ -17,10 +17,10 @@ index 350863ed11b62600dc88324283637a01162acd21..6819e007d892ee855d3e9fdab0340538
++this.timeSinceSting;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, (int) 1, (int) 1200)) == 0) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f73df2c3cb5c15bf409804de9da14098de355822..cbc915076d8ba7da3ca83b43d296f7d36a12b98b 100644
index cd900a8022aa23da4ab2a294c74100fc80fb960d..6259405b9e934534163f32cf7ba4036ebbd8859a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1071,6 +1071,7 @@ public class PurpurWorldConfig {
@@ -1076,6 +1076,7 @@ public class PurpurWorldConfig {
public boolean beeCanWorkAtNight = false;
public boolean beeCanWorkInRain = false;
public boolean beeAlwaysDropExp = false;
@@ -28,7 +28,7 @@ index f73df2c3cb5c15bf409804de9da14098de355822..cbc915076d8ba7da3ca83b43d296f7d3
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -1086,6 +1087,7 @@ public class PurpurWorldConfig {
@@ -1092,6 +1093,7 @@ public class PurpurWorldConfig {
beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable phantom size
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index bf6adaa28142019182b984b3b6aa244af970d6f5..520a5a6f3683048d64edc96b6ee69ffbbdb29af9 100644
index 9d83b50d43edc7bfd857daab7be90558d86ca334..c12fbc6a8ba9fd6807a5d43c49881ea4e5c016e1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -270,7 +270,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -275,7 +275,11 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.anchorPoint = this.blockPosition().above(5);
@@ -22,10 +22,10 @@ index bf6adaa28142019182b984b3b6aa244af970d6f5..520a5a6f3683048d64edc96b6ee69ffb
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9e9c0b4ea3247d676f351cc1ef1f246c3b3eb297..a1cd8d5bd68b74bc7548105255061e8caf7374a5 100644
index 6cb51605e560b9e4a57cb87b9b731575f4c1cd8c..2de131b31d8c80ca9be130b8755db9bec379cf6c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1925,6 +1925,8 @@ public class PurpurWorldConfig {
@@ -1992,6 +1992,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index 9e9c0b4ea3247d676f351cc1ef1f246c3b3eb297..a1cd8d5bd68b74bc7548105255061e8c
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1966,6 +1968,13 @@ public class PurpurWorldConfig {
@@ -2034,6 +2036,13 @@ public class PurpurWorldConfig {
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp);