Add water damage to all mobs (#703)

Co-authored-by: SPh <sph@sphnet.in>
This commit is contained in:
granny
2021-10-13 14:51:10 -07:00
committed by GitHub
parent 32fc651f97
commit 3aa3404fb7
35 changed files with 2394 additions and 250 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -20,10 +20,10 @@ index fd0f5c255729b2c05ead5843ab58fe880971b3db..08bdebf99cdedfc6115405e5198346ee
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 cea244bae0449a52b04989d1db1e4fbbd178241c..f41bebbb12e457824cdd206a177137c4a64ef9a7 100644
index 9c89ae4f5f0ff8841040d43315db9fcf6d32f89e..fbb8d43b39bc3a215f89078ff45887cf6a87800b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -474,7 +474,7 @@ public class Cat extends TamableAnimal {
@@ -479,7 +479,7 @@ public class Cat extends TamableAnimal {
}
} else if (this.isFood(itemstack)) {
this.usePlayerItem(player, hand, itemstack);
@@ -33,10 +33,10 @@ index cea244bae0449a52b04989d1db1e4fbbd178241c..f41bebbb12e457824cdd206a177137c4
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 2cc91c255e0f77b214b8ec54429c11bb1d6fe8e0..553b0aff0ccc5baf41d5faae1a2fd88249dd5a74 100644
index f2226bd6753a50c0d96e07a50cb8785b50cae1ca..67c72a5b9c786d3240ade51aa48e0e63f0d758cd 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -316,7 +316,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -321,7 +321,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
if (!this.level.isClientSide) {
@@ -46,10 +46,10 @@ index 2cc91c255e0f77b214b8ec54429c11bb1d6fe8e0..553b0aff0ccc5baf41d5faae1a2fd882
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 518dd0e6b4889c049e438b393baa795a5eac3e7d..21e154c4e7fe261a41c891b481072fbd6d5215b5 100644
index 1193f711442fc8d0d3631cbb7fe4a31bf7639f1b..c681cbcd4549d6bf2d88408b94fbb31c1d1406e3 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -509,7 +509,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -514,7 +514,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// CraftBukkit - added event call and isCancelled check.
@@ -59,7 +59,7 @@ index 518dd0e6b4889c049e438b393baa795a5eac3e7d..21e154c4e7fe261a41c891b481072fbd
this.navigation.stop();
this.setTarget((LivingEntity) null);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c0d056ee845f8de9e4832de98dec00a583a901f1..3ca6998628c880b56ee81536f3ba849af92cf579 100644
index ea2a1c56ced20cad17634c7871f40f07cde3c187..4863ce93475ec25c0cece1fbcb9b1c5ca90ac5b3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -385,6 +385,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 3247f3f3c9d53953f8268c8f9575275126cf33a3..dd9655f29c397d3df15685f2901e1f232f17fec1 100644
index 2f0654d4e8eba44880392d140ee52234b79e9503..75d1cf540dfe55c8b979219b14610c22a5d18c48 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
@@ -1109,6 +1109,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1114,6 +1114,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected boolean canRide(Entity entity) {
@@ -17,10 +17,10 @@ index 3247f3f3c9d53953f8268c8f9575275126cf33a3..dd9655f29c397d3df15685f2901e1f23
}
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 bdcbe92cbe431727f5879a04bf734811ffd03c3d..257a1b91c65d9f66173cfe8a31f598a0adfd04a8 100644
index 3de45a7a54643109fc6a8287879cf6dae87e72ec..2f9e10be559bbf685bbe8b4ac4b8a55a6a663821 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
@@ -717,6 +717,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -722,6 +722,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@Override
protected boolean canRide(Entity entity) {
@@ -29,37 +29,37 @@ index bdcbe92cbe431727f5879a04bf734811ffd03c3d..257a1b91c65d9f66173cfe8a31f598a0
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 0fe9b9ec1605f32d277c7d7514d2b45ffad49749..998428f33ae2b3fd86e52392cb9c31ce1b303517 100644
index df753f279bd24f23a6b882e124d7df176dd1bca4..bb110a2123faf072364145439320442ed4a89edf 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -895,6 +895,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxHealth = 200.0D;
@@ -922,6 +922,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
+ public boolean enderDragonCanRideVehicles = false;
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -911,6 +912,7 @@ public class PurpurWorldConfig {
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
@@ -939,6 +940,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);
+ enderDragonCanRideVehicles = getBoolean("mobs.ender_dragon.can-ride-vehicles", enderDragonCanRideVehicles);
}
public boolean endermanRidable = false;
@@ -1883,6 +1885,7 @@ public class PurpurWorldConfig {
public float witherHealthRegenAmount = 1.0f;
@@ -2006,6 +2008,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
+ public boolean witherCanRideVehicles = false;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1900,6 +1903,7 @@ public class PurpurWorldConfig {
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
@@ -2024,6 +2027,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);
+ witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);
}

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 d9e2bc9d37968430910c8de33390004ba5db22a6..1578a8196f860995370a1b8938b6d71040f5d3a9 100644
index 680a9cfc79c7b9d012f68142980ff32b9fb9f228..aeb46595e663f8584d3ef45d92420d915dc52e71 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,9 +16,9 @@ index d9e2bc9d37968430910c8de33390004ba5db22a6..1578a8196f860995370a1b8938b6d710
public Endermite(EntityType<? extends Endermite> type, Level world) {
super(type, world);
@@ -51,6 +52,14 @@ public class Endermite extends Monster {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.endermiteMaxHealth);
@@ -56,6 +57,14 @@ public class Endermite extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.endermiteTakeDamageFromWater;
}
+
+ public boolean isPlayerSpawned() {
@@ -31,7 +31,7 @@ index d9e2bc9d37968430910c8de33390004ba5db22a6..1578a8196f860995370a1b8938b6d710
// Purpur end
@Override
@@ -104,12 +113,14 @@ public class Endermite extends Monster {
@@ -109,12 +118,14 @@ public class Endermite extends Monster {
public void readAdditionalSaveData(CompoundTag nbt) {
super.readAdditionalSaveData(nbt);
this.life = nbt.getInt("Lifetime");
@@ -47,7 +47,7 @@ index d9e2bc9d37968430910c8de33390004ba5db22a6..1578a8196f860995370a1b8938b6d710
@Override
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index c2db9485e69b9679a33a57bc84cf2c76c1de2a42..6e4cffa397d07c9c0910f2a1ec0fb8bf04a1b6ba 100644
index 723b1ed5078084b7f85424f66e4f7b314fc05dda..a2109b4f6705b726ac2c4a8eb639e9c515752b8c 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -72,6 +72,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {

View File

@@ -5,7 +5,7 @@ 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 5718b5941dc63987bad30efe5377476c60095b99..31384fc12fd8af92c27c709b8c1ea33d1a035eee 100644
index f815cb228c46b9fa613d831bf748518e89a0772d..478b78c2c293d9f724d98ef3d600f52bac4890d4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -114,7 +114,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,10 +18,10 @@ index 5718b5941dc63987bad30efe5377476c60095b99..31384fc12fd8af92c27c709b8c1ea33d
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 0d04a77dceab992a23dc2552ba74fd168759fbea..b98ed4b0529f5509a89475bded86d8af76edd6c3 100644
index d7de8a7b89f22974c3045a9c28daf65260e7fc98..24798c3bfd17ba8383720d759050b4c906543f39 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -943,6 +943,8 @@ public class PurpurWorldConfig {
@@ -971,6 +971,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index 0d04a77dceab992a23dc2552ba74fd168759fbea..b98ed4b0529f5509a89475bded86d8af
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -951,11 +953,17 @@ public class PurpurWorldConfig {
@@ -979,11 +981,17 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -7,7 +7,7 @@ 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 31384fc12fd8af92c27c709b8c1ea33d1a035eee..3e15f892f210611edf68dc56b912be5b4890dbcb 100644
index 478b78c2c293d9f724d98ef3d600f52bac4890d4..aaee3f187616d78b98f1b0661ff1d891e1a56db0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -250,7 +250,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -20,10 +20,10 @@ index 31384fc12fd8af92c27c709b8c1ea33d1a035eee..3e15f892f210611edf68dc56b912be5b
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b98ed4b0529f5509a89475bded86d8af76edd6c3..7f21812883e75a2d56948bcbf6dd040225d10700 100644
index 24798c3bfd17ba8383720d759050b4c906543f39..e8d89decde672d92e8346e035537d18cc797c8d6 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -945,6 +945,8 @@ public class PurpurWorldConfig {
@@ -973,6 +973,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index b98ed4b0529f5509a89475bded86d8af76edd6c3..7f21812883e75a2d56948bcbf6dd0402
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -964,6 +966,8 @@ public class PurpurWorldConfig {
@@ -992,6 +994,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 34dec0a94840a8865f1d80857ec54a1022ae5b84..5fc930a75d6bedb2b841a6c601ed6a45
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 93a05b945ac248df0ea7a0b9d7264a9c129c3bcf..8f12851f220bb23102f52f523a4c5d9855a46e95 100644
index 088bfe0df138ff77ba09aa47e262542b8aaa404b..ddef9b81c20b28cf8d8eebcbe7f4a7036ba21dfb 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
@@ -502,7 +502,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -507,7 +507,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
}
public void joinCaravan(Llama llama) {
@@ -32,21 +32,21 @@ index 93a05b945ac248df0ea7a0b9d7264a9c129c3bcf..8f12851f220bb23102f52f523a4c5d98
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e6ccae646a8cca4920d4470cbd3ae2374d63e16f..49447feb5988700c938b824aace9f62a552c34e2 100644
index 0ad39778c5ec508091e27fbffe1cc85503df8cf5..cf6958e8cce679cb992510da94aaea369051b399 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1211,6 +1211,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMin = 0.175D;
@@ -1266,6 +1266,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
+ public boolean llamaJoinCaravans = true;
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1228,6 +1229,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
@@ -1284,6 +1285,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);
+ llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans);
}

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 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3166099a8 100644
index 10095acd7b5b0b6e4e74192bb3d74ae2091aa75f..a9f3aec907798c0ce9bb684cdea8ab41323c4772 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,9 +17,9 @@ index 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3
// Purpur end
public Creeper(EntityType<? extends Creeper> type, Level world) {
@@ -146,6 +147,14 @@ public class Creeper extends Monster implements PowerableMob {
}
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
@@ -151,6 +152,14 @@ public class Creeper extends Monster implements PowerableMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.creeperTakeDamageFromWater;
}
+
+ @Override
@@ -32,7 +32,7 @@ index 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3
// Purpur end
@Override
@@ -343,6 +352,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -348,6 +357,7 @@ public class Creeper extends Monster implements PowerableMob {
}
public void explodeCreeper() {
@@ -40,7 +40,7 @@ index 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3
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;
@@ -361,7 +371,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -366,7 +376,7 @@ public class Creeper extends Monster implements PowerableMob {
}
// CraftBukkit end
}
@@ -50,21 +50,21 @@ index 0192c5502037b8f93e6507e7dcb9229201d29d36..ba12eb0b3b4023371938ec4c076cbac3
private void spawnLingeringCloud() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 49447feb5988700c938b824aace9f62a552c34e2..606bb9e8be24bf91792bdffea7b759878e3ee552 100644
index cf6958e8cce679cb992510da94aaea369051b399..817f6a8e3b301e25d5748d53247478d83616cc1e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -818,6 +818,7 @@ public class PurpurWorldConfig {
public double creeperChargedChance = 0.0D;
@@ -835,6 +835,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
+ public boolean creeperExplodeWhenKilled = false;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -830,6 +831,7 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
@@ -848,6 +849,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);
+ creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
}

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 4e72c6876dff1a03bb6736c8e90463cd51dadcb5..56ff44fb097893c2596e60312671307942520c0f 100644
index 780dae83e07339722e0fed962f2e6fa782d4a30e..3e92e7aabd412b11e78d27a36f88a9f138d8a6bd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -194,7 +194,7 @@ public class Ravager extends Raider {
@@ -199,7 +199,7 @@ public class Ravager extends Raider {
BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock();
@@ -31,21 +31,21 @@ index 3c51e6d419a244b9270119590aa299527163c331..b466b0430dd94777975a1e7ab9792166
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 606bb9e8be24bf91792bdffea7b759878e3ee552..513272c2c4e45ea382ee087394c3f587b78c9289 100644
index 817f6a8e3b301e25d5748d53247478d83616cc1e..b11be182547329bd3e5c03fbd6ca62ae86f1f2a5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1521,6 +1521,7 @@ public class PurpurWorldConfig {
public boolean ravagerRidableInWater = false;
@@ -1606,6 +1606,7 @@ public class PurpurWorldConfig {
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
+ public List<Block> ravagerGriefableBlocks = new ArrayList<>();
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1531,6 +1532,23 @@ public class PurpurWorldConfig {
}
@@ -1617,6 +1618,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);
+ getList("mobs.ravager.griefable-blocks", new ArrayList<String>(){{
+ add("minecraft:oak_leaves");
+ add("minecraft:spruce_leaves");

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 7a3c19b07c87394bc73ea16f9f0be22d7ea4f470..597d21bd2d7dde000e02986557be205380e2aa0a 100644
index 244649908b2331dfdc41d23a8697aa5e792942c0..259f220a7ce23ff9b82e5f69889b9def9b682aa3 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -383,7 +383,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -388,7 +388,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 7a3c19b07c87394bc73ea16f9f0be22d7ea4f470..597d21bd2d7dde000e02986557be2053
}
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 c48935d35a6141c41db22e3ec172d5994fd317a2..fa4644c11cbb252734a6f5dc21c861d2c7309ffd 100644
index e5b78c9d6fb326771d65ea9afd9da38c204922f0..1a8df13b06b1ac5e5a7d63033b4a53261c779eda 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -140,7 +140,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -145,7 +145,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,37 +31,37 @@ index c48935d35a6141c41db22e3ec172d5994fd317a2..fa4644c11cbb252734a6f5dc21c861d2
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7ba9d28d27fe8ae62111726f17ada6c65f5d76ff..7aa41a254a4ccc185af997e3d6515187e83f2db4 100644
index 433e72f93387625efe29db14a808db6078732e82..84b88a27f70e0cea75eadd51c82d90bc2ab003f2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1865,6 +1865,7 @@ public class PurpurWorldConfig {
public boolean villagerClericsFarmWarts = false;
@@ -1980,6 +1980,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
+ public boolean villagerAllowTrading = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1892,6 +1893,7 @@ public class PurpurWorldConfig {
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
@@ -2008,6 +2009,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);
+ villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
}
public boolean vindicatorRidable = false;
@@ -1915,6 +1917,7 @@ public class PurpurWorldConfig {
public double wanderingTraderMaxHealth = 20.0D;
@@ -2034,6 +2036,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
+ public boolean wanderingTraderAllowTrading = true;
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -1926,6 +1929,7 @@ public class PurpurWorldConfig {
wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth);
@@ -2046,6 +2049,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);
+ wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading);
}

View File

@@ -31,21 +31,21 @@ index fef1027829c44957e23c0a121033bfb7640d06f0..c42349d0f6b0025525278295b36f4030
pos = pos.below();
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2d63a25e574fde7fe5694e9e49d7cd1602061365..f7c285f84bbe635464f96d0045dfd3dcda33180b 100644
index 5718fd563eabdcdd8d85375bd31d979961a87c21..af8468fb7ea5327dac2c1aa53c9ba5f3efd92606 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1486,6 +1486,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = false;
@@ -1559,6 +1559,7 @@ public class PurpurWorldConfig {
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
+ public int piglinPortalSpawnModifier = 2000;
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1496,6 +1497,7 @@ public class PurpurWorldConfig {
}
@@ -1570,6 +1571,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);
+ piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
}

View File

@@ -18,20 +18,20 @@ index 430aa10101d9f21561155941ff24441fd0c4103a..de91f0dd7f9a62e5a96b4cc3e4f505ec
if (!event.isCancelled()) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 262ea71d4b578a42b319939d7eb20b18e5ba4f61..50232e3c4838faeacf95c9de4805436babd34e99 100644
index a3ef14db546b3175938d834c74fb3da6a70199e0..5b62f0bd78c38dfd174c93bf4198c6b28b499aef 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2022,6 +2022,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
@@ -2145,6 +2145,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
+ public float witherExplosionRadius = 1.0F;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2040,6 +2041,7 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -2164,6 +2165,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);
+ witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-6278
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 ff8791b9202d6487afbf7b9dafc5dda375f73a5a..5c9321901c8f220f895a278cc4940560cf72dc19 100644
index a0a36fcc7b5faf1f195696c41c41c3abc17dbe73..3b3ea87261b0fcc05f7882c2760199613f03a19f 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
@@ -217,7 +217,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -222,7 +222,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@Override
public boolean removeWhenFarAway(double distanceSquared) {

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 ba12eb0b3b4023371938ec4c076cbac3166099a8..02ebc4ee80d433f895e643bfbc618aa85d96cc43 100644
index a9f3aec907798c0ce9bb684cdea8ab41323c4772..59531e4e9163f992ed1176fda217acbde9f8c09b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -356,9 +356,10 @@ public class Creeper extends Monster implements PowerableMob {
@@ -361,9 +361,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,20 +21,20 @@ index ba12eb0b3b4023371938ec4c076cbac3166099a8..02ebc4ee80d433f895e643bfbc618aa8
if (!event.isCancelled()) {
this.dead = true;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index a9e6911c826c46c1141e1a405d803c33384da72a..7900d817229a63e5c8e2bd2a0ebedd4ead3ce7d4 100644
index f4ea7af63a72320d9380c7cf8ea9a2570a737b7b..0a103138f31473fdadff6c342f8b9aa22dad81fe 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -914,6 +914,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
@@ -931,6 +931,7 @@ public class PurpurWorldConfig {
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
+ public boolean creeperHealthRadius = false;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -927,6 +928,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -945,6 +946,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);
+ creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
}

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 f4e983da7206923ee0b0f984e65a6c2b3a6a8aeb..cea3725009af1bc746a593c4db63ed630889cd21 100644
index e327e00506f1b96fe924e52de6c45034ba56ac7a..e19e0c934c2e494a439ba8ec22b238e82aa72c28 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -91,6 +91,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -96,6 +96,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 net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur
@@ -17,21 +17,21 @@ index f4e983da7206923ee0b0f984e65a6c2b3a6a8aeb..cea3725009af1bc746a593c4db63ed63
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/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7900d817229a63e5c8e2bd2a0ebedd4ead3ce7d4..d36ee86f7f03dd1543d65e12f7fb1872276ebe16 100644
index 0a103138f31473fdadff6c342f8b9aa22dad81fe..330dd72da29356d299ba74075819c80633c18187 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1289,6 +1289,7 @@ public class PurpurWorldConfig {
public boolean ironGolemRidableInWater = false;
@@ -1342,6 +1342,7 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false;
+ public boolean ironGolemPoppyCalm = false;
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1299,6 +1300,7 @@ public class PurpurWorldConfig {
set("mobs.iron_golem.attributes.max_health", oldValue);
@@ -1353,6 +1354,7 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);
+ ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm);
}

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 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6c4612c61 100644
index 67c72a5b9c786d3240ade51aa48e0e63f0d758cd..bb4449f19319926cbd3ea4961a591669f370bd6e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -210,6 +210,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -215,6 +215,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 1.25D)); // Purpur
@@ -16,7 +16,7 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6
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));
@@ -324,6 +325,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -329,6 +330,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
}
@@ -24,7 +24,7 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6
return InteractionResult.sidedSuccess(this.level.isClientSide);
} else if (itemstack.is(Parrot.POISONOUS_FOOD)) {
if (!player.getAbilities().instabuild) {
@@ -349,7 +351,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -354,7 +356,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean isFood(ItemStack stack) {
@@ -33,7 +33,7 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6
}
public static boolean checkParrotSpawnRules(EntityType<Parrot> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
@@ -368,13 +370,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -373,13 +375,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean canMate(Animal other) {
@@ -50,21 +50,21 @@ index 553b0aff0ccc5baf41d5faae1a2fd88249dd5a74..3da2b68fb03a80676d7a5eed271499f6
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d36ee86f7f03dd1543d65e12f7fb1872276ebe16..8acd80d4072624e01deadd99893682a2940afd8e 100644
index 330dd72da29356d299ba74075819c80633c18187..692d12290e3f0ac7fa9f2922a2e58700a26bac23 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1425,6 +1425,7 @@ public class PurpurWorldConfig {
public boolean parrotRidableInWater = false;
@@ -1492,6 +1492,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 256D;
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);
@@ -1435,6 +1436,7 @@ public class PurpurWorldConfig {
set("mobs.parrot.attributes.max_health", oldValue);
@@ -1503,6 +1504,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);
+ parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable);
}

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 f9262c1fca1a1318fb5f6f607e8e71c1019c5c95..d4aa4a33f52b9dbc0756f7a6024105e0c2b9983f 100644
index d2de13c6a39af3dc779b508b41498d4bd6422490..d1d27e0a3e52057e5f80d917508f548ac6195b1e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -400,7 +400,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -405,7 +405,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
boolean wantsToEnterHive() {
if (this.stayOutOfHiveCountdown <= 0 && !this.beePollinateGoal.isPollinating() && !this.hasStung() && this.getTarget() == null) {
@@ -31,22 +31,22 @@ index ffacc4b8cc3ab8285c4131aec58e48ffa9e1952e..e0e039e2f614f2df48d8d1b6e8bbbe7a
return false;
} else {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3bea0aa771d4d12a0f743fa34ce1d580fab17e9c..5113ca5bbd2566cf2c0f52f3c22d530a2e383670 100644
index 937f94eb745ad164c77bd8d2be62352eacc7ed81..2c3bab019af32d5b5df98c2007e3b125095b9b43 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -800,6 +800,8 @@ public class PurpurWorldConfig {
public double beeMaxY = 256D;
@@ -805,6 +805,8 @@ public class PurpurWorldConfig {
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
public boolean beeTakeDamageFromWater = false;
+ public boolean beeCanWorkAtNight = false;
+ public boolean beeCanWorkInRain = false;
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -811,6 +813,8 @@ public class PurpurWorldConfig {
}
@@ -817,6 +819,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);
+ beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
+ beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
}

View File

@@ -188,7 +188,7 @@ index 74f4f8e1c9faef3b50fa817ca3dfbb6b19b1622d..5b19d8db09867791782c899d41d314c5
// 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 7bb8ef0bb2de9a0b0d5048f8a4089835c41de568..3a643b0f614a875d6781e9e703e47b60254f8ad3 100644
index 5458ac83fa555e22ca858f4f596ebb8f37926dd5..ca5683e9b0b4aad3827fe6d00198da8e5b6a69ec 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 7bb8ef0bb2de9a0b0d5048f8a4089835c41de568..3a643b0f614a875d6781e9e703e47b60
}
// Purpur start
@@ -65,7 +66,7 @@ public class Husk extends Zombie {
@@ -70,7 +71,7 @@ public class Husk extends Zombie {
@Override
public boolean isSunSensitive() {
@@ -209,7 +209,7 @@ index 7bb8ef0bb2de9a0b0d5048f8a4089835c41de568..3a643b0f614a875d6781e9e703e47b60
@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 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76d404bbeb 100644
index 59548f2a7683d4990c8fff668b462d7a1cdf969a..7706dbc824b6ff8a00f72f5890cc95ec59503eda 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -61,6 +61,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -220,7 +220,7 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76
}
// Purpur start
@@ -232,7 +233,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -237,7 +238,7 @@ public class Phantom extends FlyingMob implements Enemy {
@Override
public void aiStep() {
@@ -229,7 +229,7 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76
this.setSecondsOnFire(8);
}
@@ -264,7 +265,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -269,7 +270,7 @@ public class Phantom extends FlyingMob implements Enemy {
this.spawningEntity = nbt.getUUID("Paper.SpawningEntity");
}
if (nbt.contains("Paper.ShouldBurnInDay")) {
@@ -238,7 +238,7 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76
}
// Paper end
}
@@ -280,7 +281,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -285,7 +286,7 @@ public class Phantom extends FlyingMob implements Enemy {
if (this.spawningEntity != null) {
nbt.putUUID("Paper.SpawningEntity", this.spawningEntity);
}
@@ -247,7 +247,7 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76
// Paper end
}
@@ -341,7 +342,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -346,7 +347,7 @@ public class Phantom extends FlyingMob implements Enemy {
}
public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; }
@@ -257,7 +257,7 @@ index 26ef372ddeb707ad0962297ce736c245f713d9f2..516f0c11d32a6bc7e7b83c65d18b7c76
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 9e4f6bf67301d62f431254a6863d7739e8c6b370..9716cf7d4e203905db252a4e3e82e8a9f8731f75 100644
index d0023f76e0c4b5d9db261416192ba7f0b1dca772..4ccc743cba68f9af2d1663a28bfe94d48e478c97 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -96,11 +96,12 @@ public class Zombie extends Monster {
@@ -274,7 +274,7 @@ index 9e4f6bf67301d62f431254a6863d7739e8c6b370..9716cf7d4e203905db252a4e3e82e8a9
}
public Zombie(Level world) {
@@ -282,30 +283,7 @@ public class Zombie extends Monster {
@@ -287,30 +288,7 @@ public class Zombie extends Monster {
@Override
public void aiStep() {
@@ -306,7 +306,7 @@ index 9e4f6bf67301d62f431254a6863d7739e8c6b370..9716cf7d4e203905db252a4e3e82e8a9
super.aiStep();
}
@@ -343,6 +321,7 @@ public class Zombie extends Monster {
@@ -348,6 +326,7 @@ public class Zombie extends Monster {
}
@@ -314,7 +314,7 @@ index 9e4f6bf67301d62f431254a6863d7739e8c6b370..9716cf7d4e203905db252a4e3e82e8a9
public boolean isSunSensitive() {
return this.shouldBurnInDay; // Paper - use api value instead
}
@@ -472,7 +451,7 @@ public class Zombie extends Monster {
@@ -477,7 +456,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 9e4f6bf67301d62f431254a6863d7739e8c6b370..9716cf7d4e203905db252a4e3e82e8a9
}
@Override
@@ -486,7 +465,7 @@ public class Zombie extends Monster {
@@ -491,7 +470,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 d6fdaa9f9033d8b1e8aa9ef0aace387e286ebce9..03da91ee39851e8d066b8c63dce849e665c59479 100644
index 23b038d4cca101313303299779ca50be7a596d27..06c6be23da8d1090aed33f48fc0bbbe442a974b4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -496,13 +496,22 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -501,13 +501,22 @@ public class Shulker extends AbstractGolem implements Enemy {
Vec3 vec3d = this.position();
AABB axisalignedbb = this.getBoundingBox();
@@ -61,13 +61,13 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 645ffe7e1ff6a0285fcde914bb40f30cb70e997d..019b1ced224b25955f3d1cde195278db7fbf556e 100644
index 9dc31d7b6bed1fcb3ebccfd6c5af6887abc0c6f1..ded3fba4787809b05da37867a2f0dce8c468b3bf 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1743,6 +1743,11 @@ public class PurpurWorldConfig {
public boolean shulkerRidable = false;
@@ -1834,6 +1834,11 @@ public class PurpurWorldConfig {
public boolean shulkerRidableInWater = false;
public double shulkerMaxHealth = 30.0D;
public boolean shulkerTakeDamageFromWater = false;
+ public float shulkerSpawnFromBulletBaseChance = 1.0F;
+ public boolean shulkerSpawnFromBulletRequireOpenLid = true;
+ public double shulkerSpawnFromBulletNearbyRange = 8.0D;
@@ -76,10 +76,10 @@ index 645ffe7e1ff6a0285fcde914bb40f30cb70e997d..019b1ced224b25955f3d1cde195278db
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1752,6 +1757,11 @@ public class PurpurWorldConfig {
set("mobs.shulker.attributes.max_health", oldValue);
@@ -1844,6 +1849,11 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);
+ shulkerSpawnFromBulletBaseChance = (float) getDouble("mobs.shulker.spawn-from-bullet.base-chance", shulkerSpawnFromBulletBaseChance);
+ shulkerSpawnFromBulletRequireOpenLid = getBoolean("mobs.shulker.spawn-from-bullet.require-open-lid", shulkerSpawnFromBulletRequireOpenLid);
+ shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange);

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 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807504ab6d4 100644
index 766dd7d70ea20c892ee9f084f2eb14c1c7b63451..30117b2b0e5d4c34c9fd1bbeccbd252bfce3cf85 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 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807
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;
@@ -113,6 +114,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -118,6 +119,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 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807
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));
@@ -161,7 +163,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -166,7 +168,7 @@ public class Drowned extends Zombie implements RangedAttackMob {
@Override
protected boolean supportsBreakDoorGoal() {
@@ -34,21 +34,21 @@ index 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index a039d13ae08080109bb3cfa8f00b1411a7e795b7..01d4d1e4a63d07f00c1986689dc9ec8991aee86d 100644
index 0808252d9f49e96e5a67fd17eb586a2a8aff765c..1a803c7af778f875a9710b08106cb103f8a422ac 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1042,6 +1042,7 @@ public class PurpurWorldConfig {
public boolean drownedJockeyOnlyBaby = true;
@@ -1065,6 +1065,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
+ public boolean drownedBreakDoors = false;
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1055,6 +1056,7 @@ public class PurpurWorldConfig {
drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby);
@@ -1079,6 +1080,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);
+ drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors);
}

View File

@@ -18,12 +18,12 @@ index c1130952e3fa22abaa27fcc1c4761c831dc56cc3..1ac08eca469739cb52abd38483c431b6
this.tickTimer = 0;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 01d4d1e4a63d07f00c1986689dc9ec8991aee86d..9ebaa4b80bb2c8172ca923a46e0869342b0dc0af 100644
index 1a803c7af778f875a9710b08106cb103f8a422ac..783f8cd35f2d08a5ea9cd2128f41c33c31b9dd75 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2300,4 +2300,9 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);
@@ -2438,4 +2438,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);
}
+
+ public float hungerStarvationDamage = 1.0F;

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 cea3725009af1bc746a593c4db63ed630889cd21..70d5b30a23b41579d4edf7542480c40466a08e49 100644
index e19e0c934c2e494a439ba8ec22b238e82aa72c28..6b3030ae02e986355409a6e648cedf93a374b6cc 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,9 +16,9 @@ index cea3725009af1bc746a593c4db63ed630889cd21..70d5b30a23b41579d4edf7542480c404
public IronGolem(EntityType<? extends IronGolem> type, Level world) {
super(type, world);
@@ -85,6 +86,15 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.ironGolemMaxHealth);
@@ -90,6 +91,15 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.ironGolemTakeDamageFromWater;
}
+
+ @Nullable
@@ -32,7 +32,7 @@ index cea3725009af1bc746a593c4db63ed630889cd21..70d5b30a23b41579d4edf7542480c404
// Purpur end
@Override
@@ -170,6 +180,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -175,6 +185,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 cea3725009af1bc746a593c4db63ed630889cd21..70d5b30a23b41579d4edf7542480c404
this.addPersistentAngerSaveData(nbt);
}
@@ -177,6 +188,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -182,6 +193,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 cea3725009af1bc746a593c4db63ed630889cd21..70d5b30a23b41579d4edf7542480c404
}
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 37d2de60ea0fdb3fe4dcfd72f154b33bae675b74..bd89c62101be03bc3d13a1400efceaa26b901fa1 100644
index cbb09b62b0bf10b191e8e7fbe98885736807ea40..2682c176f4bff27fb5e332efc9a8a3e598482149 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -48,6 +48,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -93,7 +93,7 @@ index 37d2de60ea0fdb3fe4dcfd72f154b33bae675b74..bd89c62101be03bc3d13a1400efceaa2
}
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 257a1b91c65d9f66173cfe8a31f598a0adfd04a8..48c1ddbd9f20e6ece121b166c08341006fa15105 100644
index 2f9e10be559bbf685bbe8b4ac4b8a55a6a663821..8a100e5bf4f40f2fd75fbe5a90cfce499b6f534a 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
@@ -84,6 +84,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -104,9 +104,9 @@ index 257a1b91c65d9f66173cfe8a31f598a0adfd04a8..48c1ddbd9f20e6ece121b166c0834100
// Paper start
private boolean canPortal = false;
@@ -206,6 +207,15 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.witherMaxHealth);
@@ -211,6 +212,15 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
public boolean isSensitiveToWater() {
return this.level.purpurConfig.witherTakeDamageFromWater;
}
+
+ @Nullable
@@ -120,7 +120,7 @@ index 257a1b91c65d9f66173cfe8a31f598a0adfd04a8..48c1ddbd9f20e6ece121b166c0834100
// Purpur end
@Override
@@ -235,6 +245,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -240,6 +250,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 257a1b91c65d9f66173cfe8a31f598a0adfd04a8..48c1ddbd9f20e6ece121b166c0834100
}
@Override
@@ -244,6 +255,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -249,6 +260,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
if (this.hasCustomName()) {
this.bossEvent.setName(this.getDisplayName());
}

View File

@@ -5,7 +5,7 @@ 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 3e15f892f210611edf68dc56b912be5b4890dbcb..e76164aa8e8750cb188bec250d0cca262c88d8e6 100644
index aaee3f187616d78b98f1b0661ff1d891e1a56db0..460cb4e77e9e90260596df5af33aa2a6e16ecf86 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -400,7 +400,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,10 +18,10 @@ index 3e15f892f210611edf68dc56b912be5b4890dbcb..e76164aa8e8750cb188bec250d0cca26
for (int i = 0; i < 64; ++i) {
if (this.teleport()) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d303621e6dab8cf5c894a3fb6778f8a27ebb1b07..63c3c2399c7504eb8d66459b158f1dbd44d9ae44 100644
index f66a8e8abcf3eb1718b4d1851522c0e9eff88426..ae4731a523a38eee1f2ea002af674cb853d1b820 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1284,6 +1284,7 @@ public class PurpurWorldConfig {
@@ -1312,6 +1312,7 @@ public class PurpurWorldConfig {
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
public boolean endermanIgnorePlayerDragonHead = false;
public boolean endermanDisableStareAggro = false;
@@ -29,7 +29,7 @@ index d303621e6dab8cf5c894a3fb6778f8a27ebb1b07..63c3c2399c7504eb8d66459b158f1dbd
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -1305,6 +1306,7 @@ public class PurpurWorldConfig {
@@ -1333,6 +1334,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

@@ -7,7 +7,7 @@ Horses have a chance to stand (rear) when their ambient noise is played.
This can happen while the horse is moving with a rider, which will cause the horse to suddenly stop for a moment.
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 16b72398645757ca194cb638f46b4528283e2199..03ae6519a523ee73cce664d85074b5f9525de6d6 100644
index 41bd09ca3cfc722f03d6bf8361f56f8fe0721b87..3f7f8af62aca9825c2475a95a6ae62446cf6ad30 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -394,7 +394,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -20,21 +20,21 @@ index 16b72398645757ca194cb638f46b4528283e2199..03ae6519a523ee73cce664d85074b5f9
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4640b1a34018c09a97b60efd0278b3fca81fc468..d0aceb0c113979ba427e4067a4a782d76d82d5a8 100644
index 18c54adc5b19318916e30d473d817ad87767b099..0c12e83509e8a5bc9fdba8e9f5e1b9ba78cc618c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1463,6 +1463,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMin = 0.1125D;
@@ -1510,6 +1510,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMax = 0.3375D;
public int horseBreedingTicks = 6000;
public boolean horseTakeDamageFromWater = false;
+ public boolean horseStandWithRider = true;
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1479,6 +1480,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
@@ -1527,6 +1528,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);
+ horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider);
}

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 7fda07f5fa756077dab59de95f15b9197e09581a..6a456f52ae529654c15bd3e8ec717b3fe032da21 100644
index cea87c026130334503ad0d4753f4a8e46669e86c..a320483ef8b72edc40453c9e88bd90bd882dfe60 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 {
}
if (!this.level.isClientSide) {
@@ -18,22 +18,22 @@ index 7fda07f5fa756077dab59de95f15b9197e09581a..6a456f52ae529654c15bd3e8ec717b3f
this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition());
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e3d639865429783a0e9389807dd963dbc4bee7fc..1235d3a61b1a08b332e2d6d17fdc0742e7f1a07b 100644
index 210da3e9b7e8fc6206b2c2e0ba55eda10fefe74e..9f4d9d4dccbbfbdb3dcce729827bc3ad98ffa3a4 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2451,6 +2451,8 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
@@ -2586,6 +2586,8 @@ public class PurpurWorldConfig {
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;
public boolean zombieVillagerTakeDamageFromWater = false;
+ public int zombieVillagerCuringTimeMin = 3600;
+ public int zombieVillagerCuringTimeMax = 6000;
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2464,6 +2466,8 @@ public class PurpurWorldConfig {
zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby);
@@ -2600,6 +2602,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);
+ zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
+ zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
}

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 48c1ddbd9f20e6ece121b166c08341006fa15105..c01c60485eba8f57ad6ead20bd3f9101dd5aa8e7 100644
index 8a100e5bf4f40f2fd75fbe5a90cfce499b6f534a..6b75aaca3f22cdf3b6b51db04d6d2ed642fc0e73 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
@@ -398,7 +398,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -403,7 +403,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
}
// CraftBukkit end
@@ -18,19 +18,19 @@ index 48c1ddbd9f20e6ece121b166c08341006fa15105..c01c60485eba8f57ad6ead20bd3f9101
// this.world.b(1023, new BlockPosition(this), 0);
//int viewDistance = ((WorldServer) this.world).getServer().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/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 5044899f567635dd7a0d6f6d64cf8dae806028b2..d7fee04bacbc3cf2c527c5264b20544a46d5298e 100644
index 77d8d4dd79b69e8dd849764ed7e5cb86805a7ada..2d4d6dfeebaff6e5a54e3e9953b5209523b966be 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2312,6 +2312,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
@@ -2435,6 +2435,7 @@ public class PurpurWorldConfig {
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
public float witherExplosionRadius = 1.0F;
+ public boolean witherPlaySpawnSound = true;
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2331,6 +2332,7 @@ public class PurpurWorldConfig {
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
@@ -2455,6 +2456,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);
+ witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound);

View File

@@ -44,10 +44,10 @@ index fc996199616156d04d6ae06ddc3da8d2c159c771..dd76fe8aa67a9c4142295b72b1c3cb78
}
CraftEventFactory.blockDamage = null;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e4fa1d3edb3ef7ac18fafc1b626b0117b1d16270..14fca062aabed839bc1e504d9d8499c1500a0c7c 100644
index 66e0f02aa0e5404795b3d68165091086799ba0a8..66fc9dc62d2a69a944cae699bc62cc687e49ec08 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2509,4 +2509,27 @@ public class PurpurWorldConfig {
@@ -2647,4 +2647,27 @@ 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/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 14fca062aabed839bc1e504d9d8499c1500a0c7c..bb4ce48788454d5f3dde6e3ef36aa3939107db3a 100644
index 66fc9dc62d2a69a944cae699bc62cc687e49ec08..447d02a5a32c1133dd14e3a66f905fc1479b2d42 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -2532,4 +2532,11 @@ public class PurpurWorldConfig {
@@ -2670,4 +2670,11 @@ 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 03da91ee39851e8d066b8c63dce849e665c59479..fba13f838c7a427cf43ae9958d8815b170d64b46 100644
index 06c6be23da8d1090aed33f48fc0bbbe442a974b4..ae6e73a34fe0392be05120428716479fdcaad002 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,9 +26,9 @@ index 03da91ee39851e8d066b8c63dce849e665c59479..fba13f838c7a427cf43ae9958d8815b1
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.block.Blocks;
@@ -107,6 +111,19 @@ public class Shulker extends AbstractGolem implements Enemy {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.shulkerMaxHealth);
@@ -112,6 +116,19 @@ public class Shulker extends AbstractGolem implements Enemy {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.shulkerTakeDamageFromWater;
}
+
+ @Override
@@ -47,10 +47,10 @@ index 03da91ee39851e8d066b8c63dce849e665c59479..fba13f838c7a427cf43ae9958d8815b1
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2d13d00ff703eac2a1c1ab57df789667f8ef554d..6fe474a70c65b30534a7513bdfba60d469cb9081 100644
index c39cbf1181dbc6e1fc244821225324c2c856f27c..33a58e5cfbabd8b9deec0c153254b2bdc9149512 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1952,6 +1952,7 @@ public class PurpurWorldConfig {
@@ -2043,6 +2043,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 2d13d00ff703eac2a1c1ab57df789667f8ef554d..6fe474a70c65b30534a7513bdfba60d4
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1966,6 +1967,7 @@ public class PurpurWorldConfig {
@@ -2058,6 +2059,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 2aead13e8f879b614445715fb1912a20b9abf4b9..a33724bee284c3f05b1807d6564ddf1564278167 100644
index cff66ff55b5741d58cecf331444fac87798de4c9..b7cb3db55ddfa5a56c9cd3fa050adfb7832082c5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -85,6 +85,7 @@ public class Dolphin extends WaterAnimal {
@@ -16,7 +16,7 @@ index 2aead13e8f879b614445715fb1912a20b9abf4b9..a33724bee284c3f05b1807d6564ddf15
public Dolphin(EntityType<? extends Dolphin> type, Level world) {
super(type, world);
@@ -170,6 +171,7 @@ public class Dolphin extends WaterAnimal {
@@ -175,6 +176,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 2aead13e8f879b614445715fb1912a20b9abf4b9..a33724bee284c3f05b1807d6564ddf15
return super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
}
@@ -240,18 +242,20 @@ public class Dolphin extends WaterAnimal {
@@ -245,18 +247,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 net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur
@@ -47,21 +47,21 @@ index 2aead13e8f879b614445715fb1912a20b9abf4b9..a33724bee284c3f05b1807d6564ddf15
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 37943d2ff3618b19bd33421cb113a8c2aad8a776..bd191d1b471a3b521129c3d7449e7b6c19a02d58 100644
index b00a8883fa7476bbf8c6eb82e6bb7520f9f2e279..1176bf5ed5f3cd770dfaef543c045e42d16ff55d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1207,6 +1207,7 @@ public class PurpurWorldConfig {
public float dolphinSpitDamage = 2.0F;
@@ -1226,6 +1226,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);
@@ -1219,6 +1220,7 @@ public class PurpurWorldConfig {
}
@@ -1239,6 +1240,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);
+ dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance);
}

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 c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071501825d5 100644
index 36c06895e270be41ac37a012c9c2444f5968d4c5..7900aa1db625a7f98773a574aac5c87d6057d90a 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 c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071
public Cow(EntityType<? extends Cow> type, Level world) {
super(type, world);
@@ -56,12 +57,19 @@ public class Cow extends Animal {
@@ -56,6 +57,7 @@ public class Cow extends Animal {
@Override
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.cowMaxHealth);
@@ -24,8 +24,9 @@ index c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071
}
@Override
public int getPurpurBreedTime() {
return this.level.purpurConfig.cowBreedingTicks;
@@ -67,6 +69,12 @@ public class Cow extends Animal {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.cowTakeDamageFromWater;
}
+
+ @Override
@@ -36,7 +37,7 @@ index c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071
// Purpur end
@Override
@@ -69,6 +77,7 @@ public class Cow extends Animal {
@@ -74,6 +82,7 @@ public class Cow extends Animal {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new net.pl3x.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
@@ -44,7 +45,7 @@ index c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071
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));
@@ -76,10 +85,11 @@ public class Cow extends Animal {
@@ -81,10 +90,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));
@@ -58,13 +59,13 @@ index c718697a9511ccf761467644967397b777446db9..66ecd29cc52483e0a79ec6c9c5dbf071
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index bd191d1b471a3b521129c3d7449e7b6c19a02d58..3206090c54ea80b96f66acdb3dcc1f01a5fb39be 100644
index 1176bf5ed5f3cd770dfaef543c045e42d16ff55d..4d36b9359b9fa237acaa9d2dab132718ec5f35b1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1164,7 +1164,14 @@ public class PurpurWorldConfig {
public double cowMaxHealth = 10.0D;
@@ -1179,7 +1179,14 @@ public class PurpurWorldConfig {
public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000;
public boolean cowTakeDamageFromWater = false;
+ public double cowNaturallyAggressiveToPlayersChance = 0.0D;
+ public double cowNaturallyAggressiveToPlayersDamage = 2.0D;
private void cowSettings() {
@@ -76,10 +77,10 @@ index bd191d1b471a3b521129c3d7449e7b6c19a02d58..3206090c54ea80b96f66acdb3dcc1f01
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1175,6 +1182,8 @@ public class PurpurWorldConfig {
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
@@ -1191,6 +1198,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);
+ cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance);
+ cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage);
}

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 597d21bd2d7dde000e02986557be205380e2aa0a..e88465e5ce0cc4537027a802443159c39bab1c6d 100644
index 259f220a7ce23ff9b82e5f69889b9def9b682aa3..f21c0ef251f5fd830c72cacba7ce909e78dc96cb 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1175,6 +1175,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1180,6 +1180,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public void startSleeping(BlockPos pos) {
@@ -22,7 +22,7 @@ index 597d21bd2d7dde000e02986557be205380e2aa0a..e88465e5ce0cc4537027a802443159c3
this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level.getGameTime()); // CraftBukkit - decompile error
this.brain.eraseMemory(MemoryModuleType.WALK_TARGET);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 7f1914083d60c7e6eeb12c700004fc3f9846f039..ecc07192df1b7c3e712d4ca415a13241b23dd94d 100644
index 4d36b9359b9fa237acaa9d2dab132718ec5f35b1..67e83db043459b03b544d5f03e34ba68b6a82cf7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -731,11 +731,13 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] horses tempted by gold config
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 03ae6519a523ee73cce664d85074b5f9525de6d6..206be7e1fc85fed99118020490d8494d197597ab 100644
index 3f7f8af62aca9825c2475a95a6ae62446cf6ad30..f8de46caf169da91b18c04a8f4c2e65f5f271afa 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -168,6 +168,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -17,20 +17,20 @@ index 03ae6519a523ee73cce664d85074b5f9525de6d6..206be7e1fc85fed99118020490d8494d
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 8aed157f9e81117e48be0fdded2388a33a333f4f..2fbf18706cfdba0ae1176af0d51fc943664bb88f 100644
index 67e83db043459b03b544d5f03e34ba68b6a82cf7..7d93284fe3372943c077cf5a9225fe7f3f6c8e0e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1511,6 +1511,7 @@ public class PurpurWorldConfig {
public double horseMovementSpeedMax = 0.3375D;
@@ -1558,6 +1558,7 @@ public class PurpurWorldConfig {
public int horseBreedingTicks = 6000;
public boolean horseTakeDamageFromWater = false;
public boolean horseStandWithRider = true;
+ public boolean horseTemptedByGold = false;
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1528,6 +1529,7 @@ public class PurpurWorldConfig {
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
@@ -1576,6 +1577,7 @@ public class PurpurWorldConfig {
horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks);
horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater);
horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider);
+ horseTemptedByGold = getBoolean("mobs.horse.tempted-by-gold", horseTemptedByGold);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] llama tempted by hay config
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 8f12851f220bb23102f52f523a4c5d9855a46e95..02035b4d062e4a44b8711d940cc3680c3132fb4d 100644
index ddef9b81c20b28cf8d8eebcbe7f4a7036ba21dfb..9e72325a05982ae593a6a49f4e4b007cc4d90436 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
@@ -185,6 +185,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -190,6 +190,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
this.goalSelector.addGoal(3, new RangedAttackGoal(this, 1.25D, 40, 20.0F));
this.goalSelector.addGoal(3, new PanicGoal(this, 1.2D));
this.goalSelector.addGoal(4, new BreedGoal(this, 1.0D));
@@ -17,20 +17,20 @@ index 8f12851f220bb23102f52f523a4c5d9855a46e95..02035b4d062e4a44b8711d940cc3680c
this.goalSelector.addGoal(6, new WaterAvoidingRandomStrollGoal(this, 0.7D));
this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 6.0F));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2fbf18706cfdba0ae1176af0d51fc943664bb88f..d04204367b86d3fb7f463de5d0dea660835271cc 100644
index 7d93284fe3372943c077cf5a9225fe7f3f6c8e0e..88a2edb61fd0911ea5af0537afe741b4d1eadcb3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1604,6 +1604,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
@@ -1659,6 +1659,7 @@ public class PurpurWorldConfig {
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
public boolean llamaJoinCaravans = true;
+ public boolean llamaTemptedByHay = false;
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1622,6 +1623,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
@@ -1678,6 +1679,7 @@ public class PurpurWorldConfig {
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);
llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans);
+ llamaTemptedByHay = getBoolean("mobs.llama.tempted-by-hay", llamaTemptedByHay);
}

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 e749f0f3a35783cada224e4b0c12f294c3245210..1e99282b2b1d433531cb2421ca69f3206f0aaf75 100644
index ff6f53ad75e9aee1485e7883aae734aa7ee7994f..d79e1110f5aaceab344d0ecbfe33790d9051977a 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -304,7 +304,7 @@ public class Bat extends AmbientCreature {
@@ -309,7 +309,7 @@ public class Bat extends AmbientCreature {
int i = world.getMaxLocalRawBrightness(pos);
byte b0 = 4;
@@ -17,7 +17,7 @@ index e749f0f3a35783cada224e4b0c12f294c3245210..1e99282b2b1d433531cb2421ca69f320
b0 = 7;
} else if (random.nextBoolean()) {
return false;
@@ -318,6 +318,7 @@ public class Bat extends AmbientCreature {
@@ -323,6 +323,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 5b19d8db09867791782c899d41d314c511f6c8a2..3d8b1b8d49af74babf628231345ac1c1
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 39fa4a9a52c510e88036ab790a8739d20935188b..60080323686b7c76529fce4a8e95664e5c651ce9 100644
index 4ccc743cba68f9af2d1663a28bfe94d48e478c97..52820c4f09e5e6f542c8835ea5be7cfb962a5df4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -563,11 +563,7 @@ public class Zombie extends Monster {
@@ -568,11 +568,7 @@ public class Zombie extends Monster {
}
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
@@ -60,11 +60,11 @@ index 39fa4a9a52c510e88036ab790a8739d20935188b..60080323686b7c76529fce4a8e95664e
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d04204367b86d3fb7f463de5d0dea660835271cc..907fc4e0c0cffd6a753f6e9baa0ce9325df1f090 100644
index 88a2edb61fd0911ea5af0537afe741b4d1eadcb3..672d1b72da721cf74420d0f092a4fa1b75ef7d95 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1486,6 +1486,13 @@ public class PurpurWorldConfig {
guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth);
@@ -1530,6 +1530,13 @@ public class PurpurWorldConfig {
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
}
+ public boolean forceHalloweenSeason = false;