Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@c7714bbf Update PlayerPostRespawnEvent to include full location data (#13237)
PaperMC/Paper@9d427a5e [ci/skip] Enable unpick (#13241)
PaperMC/Paper@13e9c107 [ci/skip] Update mache for new unpick definitions
PaperMC/Paper@9934c173 Set chunk loading radius to 0 in PlayerSpawnFinder
This commit is contained in:
granny
2025-10-30 21:48:23 -07:00
parent ffe2f809fe
commit 3d61a21422
65 changed files with 714 additions and 706 deletions

View File

@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
version = 1.21.10-R0.1-SNAPSHOT
mcVersion = 1.21.10
paperCommit = 2a1871bba6d4406c61c872a2977f62e3d8863efc
paperCommit = 9934c17322980f2f67e2a47d09b08fb8a8a881c6
org.gradle.configuration-cache = true
org.gradle.caching = true

File diff suppressed because it is too large Load Diff

View File

@@ -23,10 +23,10 @@ index 8a10da9409e19b03b559d14c6f5238b5393545c7..cbb7e0591dc761d0566ac99dc6e5697b
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 0002c7c4c728f44106ad4984e1d39ff2c76bf86f..be657ca79feed6a39fa5ca173d875e6678faf27e 100644
index 28a6316996fe44228539bd54b019ef40f016f967..aeaf62b438fccc628ae3e8316d7965cdbea75731 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -292,6 +292,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
protected LivingEntity(EntityType<? extends LivingEntity> type, Level level) {
super(type, level);
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur - Ridables
@@ -34,7 +34,7 @@ index 0002c7c4c728f44106ad4984e1d39ff2c76bf86f..be657ca79feed6a39fa5ca173d875e66
this.craftAttributes = new org.bukkit.craftbukkit.attribute.CraftAttributeMap(this.attributes); // CraftBukkit
// CraftBukkit - this.setHealth(this.getMaxHealth()) inlined and simplified to skip the instanceof check for Player, as getBukkitEntity() is not initialized in constructor
this.entityData.set(LivingEntity.DATA_HEALTH_ID, this.getMaxHealth());
@@ -315,6 +316,8 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -316,6 +317,8 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
return new EntityEquipment();
}
@@ -44,10 +44,10 @@ index 0002c7c4c728f44106ad4984e1d39ff2c76bf86f..be657ca79feed6a39fa5ca173d875e66
return this.brain;
}
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index 16cebb7e0ba7070c67dee00a67c29c3f808d8048..947619d07ef381ab79774b3f6cdc4c2454b632cb 100644
index 0720d331eaae7c9f12d654cef278ffcf7510597b..4624aca3dc3054ce7558023033fc953aedd33d88 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -96,6 +96,21 @@ public class Bat extends AmbientCreature {
@@ -97,6 +97,21 @@ public class Bat extends AmbientCreature {
}
// Purpur end - Ridables
@@ -70,10 +70,10 @@ index 16cebb7e0ba7070c67dee00a67c29c3f808d8048..947619d07ef381ab79774b3f6cdc4c24
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index c0abcf209d45146d1f98599c2f4d16877431a46c..30f25727b60d3d846956b878dc53542669de6203 100644
index 345f10125d80ead9341d285ed8d3faa3013e5b40..b8dda3956152af17ce731d337ceb157d94bfb07b 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -473,6 +473,14 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -474,6 +474,14 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
return beehiveBlockEntity != null && beehiveBlockEntity.isFireNearby();
}
@@ -89,10 +89,10 @@ index c0abcf209d45146d1f98599c2f4d16877431a46c..30f25727b60d3d846956b878dc535426
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 59bcbf6d5d844000ab26c0ca7e6674c7ac6f35ed..10365c8a63bfbefa49d243d0e51a79b7a2052238 100644
index dc207012d233de1fa056bb318e3e143496743ebb..7550a645d7814bc97243088e2d0f366adb081c76 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -117,6 +117,14 @@ public class Cat extends TamableAnimal {
@@ -118,6 +118,14 @@ public class Cat extends TamableAnimal {
}
// Purpur end - Ridables
@@ -164,10 +164,10 @@ index 380c8e3c9c790d626cd9f8d4b1f13838d0b756ec..e7100834ce813e9814139c6d6e957fce
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index 68dfce3c68cb4a861932e76dfa39f1b4f3724a50..71147da158f389207c032bc8e952ddb677e6d0ee 100644
index 703bb05c293b3ae13745c014cbd5f12864dec003..caf0f3c0690344fafb9a52a55f81b25ea6aa91a9 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -151,6 +151,14 @@ public class Dolphin extends AgeableWaterCreature {
@@ -152,6 +152,14 @@ public class Dolphin extends AgeableWaterCreature {
}
// Purpur end - Ridables
@@ -183,10 +183,10 @@ index 68dfce3c68cb4a861932e76dfa39f1b4f3724a50..71147da158f389207c032bc8e952ddb6
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 6b931060a7be54aa6a1c0d196c52c4e4b56c0a95..ce46a3ff3a24666736211221fa9c5e69b8146be8 100644
index 1da6563a3a1d85e562b85435bb27cd82bbc05faf..375ce5de2c041a7e61578c233ca0dc2ef3a588ca 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -180,6 +180,14 @@ public class Fox extends Animal {
@@ -182,6 +182,14 @@ public class Fox extends Animal {
}
// Purpur end - Ridables
@@ -235,10 +235,10 @@ index eb14c2c508efd927d4696ac4e7cd420104ccc192..c5a126718c93d01376b73eb1337cfa63
@Override
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index ed2ddcb4d4736b384a1b90cc4ea0e086e9d53102..89799cb1545b29ff10c25096e5ec7ba12af74eb1 100644
index 250c5b75b9e0d49eb8834ca9e7bbb5f8c029acb2..a8ae43ab84d746e8f046b52410602607e759761e 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -92,6 +92,14 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -93,6 +93,14 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
}
// Purpur end - Ridables
@@ -272,10 +272,10 @@ index 9de016cb4e1aba2ab8ff4f16827b3450e8155992..743faa77525d68181ee38415399bc607
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 91fa99c852e79e572165322212b0291e73ebf0b3..751aa4fea84db8e385001633df0c0d18ef6fde3a 100644
index 7db9d782a62cfac5f851a6242f4c9a24784648dc..947c4d4a9f93c3da36ab5912ef362a60bdf75596 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -81,6 +81,14 @@ public class Ocelot extends Animal {
@@ -82,6 +82,14 @@ public class Ocelot extends Animal {
}
// Purpur end - Ridables
@@ -291,7 +291,7 @@ index 91fa99c852e79e572165322212b0291e73ebf0b3..751aa4fea84db8e385001633df0c0d18
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 7be63b0738a1962a4b2563e78ae72f48bc330a2a..c74f2a95a473464be3497ea39e366564d3f74e66 100644
index 180d356bf24d20dc8c8534fdb59222e18672f1b4..53e4d1d35be13f04267151e1e8f808c5ad796ef5 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -133,6 +133,15 @@ public class Panda extends Animal {
@@ -324,10 +324,10 @@ index 7be63b0738a1962a4b2563e78ae72f48bc330a2a..c74f2a95a473464be3497ea39e366564
if (this.isLazy()) {
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index e0374a72738f8110e41471cd0ef2d044be616523..debda7f54b05831d16014fb271b1a996822fecb5 100644
index 31e5ca2b2e0aaae75f4f2ffc2ada7d0224652608..01e2f610e8f0c54917899b54625b17fb0629df67 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -193,6 +193,14 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -194,6 +194,14 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
// Purpur end - Ridables
@@ -381,7 +381,7 @@ index 6ffb35630bab1303edb2179e4dcf749f9b3c3c28..2cf417f3bcf338a3edc4a2f71d8a700a
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index 51dd0333b02ee232f3e2b17c9ae3617ea36f18ba..8b895308ee7639396983c73dc4c2572c957df027 100644
index 77862aea7b2bbc931d34c4e4ebd336bb5d5755d6..7ce2f0397b05e98a1d5721b6f5674cfbe7d19333 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish {
@@ -399,10 +399,10 @@ index 51dd0333b02ee232f3e2b17c9ae3617ea36f18ba..8b895308ee7639396983c73dc4c2572c
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index f50b38c98ec6eb96a72dde926a20e9a3803ee630..1b29d2a49350ff557e09b1297b3825f2cc28bad3 100644
index f2ae78ccf93dbd7617f04d3d13b8b809fde0d151..7a2a95bb2fc1b7d2103da8ce7dd7f820af284f4f 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -145,6 +145,14 @@ public class Rabbit extends Animal {
@@ -147,6 +147,14 @@ public class Rabbit extends Animal {
}
// Purpur end - Ridables
@@ -455,10 +455,10 @@ index 00af403efafbdd7274524403b2212c15026ee147..d6f2a04cf04090e3cb68f5111d47bff9
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index 39c8703d3034b48c9218adf4d347bd5e24231145..ad2be25e45b350c7d971cd750245dbfa2b27ccb5 100644
index ff12229101aae273e5e887a7761ce1ba1b34e0b9..4f8a5d0d6c3d302ebf8fcb3268f8e40b63686125 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -91,6 +91,14 @@ public class Squid extends AgeableWaterCreature {
@@ -92,6 +92,14 @@ public class Squid extends AgeableWaterCreature {
}
// Purpur end - Ridables
@@ -492,10 +492,10 @@ index 6c2497ab50dd7ab6d5a7043935b0beeed36bfad8..95368fd534c77e7d89ed6219f1f3948c
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index bb54f64cc36939bfd1e6ca57a1128b813fab2ad7..88bd025f491ec17884007cc5c1b57c64461d2901 100644
index f10c2e3346fe8102e0b3a93f8b57b8d262172bea..047a1b27d4af3d050784241c8a34fdebbd8e1f49 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -103,6 +103,14 @@ public class Turtle extends Animal {
@@ -104,6 +104,14 @@ public class Turtle extends Animal {
}
// Purpur end - Ridables
@@ -511,10 +511,10 @@ index bb54f64cc36939bfd1e6ca57a1128b813fab2ad7..88bd025f491ec17884007cc5c1b57c64
this.homePos = homePos;
}
diff --git a/net/minecraft/world/entity/animal/allay/Allay.java b/net/minecraft/world/entity/animal/allay/Allay.java
index 4d08642a006d4b7d9b858d8c594c2888f0d7e595..d842d0158f1c685a9350c61158a6eaa36ea9e897 100644
index 1811fed8085b7045003a6cc2731ce8fc6b4d74ea..bbe59d6ab90f1b1274289ef20811f914afa55fd3 100644
--- a/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/net/minecraft/world/entity/animal/allay/Allay.java
@@ -167,6 +167,14 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -168,6 +168,14 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
}
// Purpur end - Ridables
@@ -530,10 +530,10 @@ index 4d08642a006d4b7d9b858d8c594c2888f0d7e595..d842d0158f1c685a9350c61158a6eaa3
protected Brain.Provider<Allay> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index 764ad0be43e225f2f9d84641158ad0844993489e..2343f4fcca96f4887c6fb00e8fdc43b959aba69e 100644
index 60abd71799ec3bb61aae1f7933245156fbc1587b..17d1a3d7ad33d99a57ea11be467e746b3dc99cbe 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -99,6 +99,14 @@ public class Armadillo extends Animal {
@@ -100,6 +100,14 @@ public class Armadillo extends Animal {
}
// Purpur end - Ridables
@@ -596,10 +596,10 @@ index 486974bf7764a6eee37e67acdfc3b7798fa218ef..78df0eb0a0b6765406bd0dc041a02b09
public SoundEvent getAmbientSound() {
return SoundEvents.CAMEL_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index f63dee3d9192836c4a92696a4383bcfb1489385d..e50f9c7113063ce0c8696e06a3ca6ab768adc4af 100644
index 66e0ccdf938023a8df1cf179224b64508646e3e0..cfe0bb8983dd1633085e03a6c2a57d99a0d822b8 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -131,6 +131,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -133,6 +133,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
}
// Purpur end - Ridables
@@ -617,10 +617,10 @@ index f63dee3d9192836c4a92696a4383bcfb1489385d..e50f9c7113063ce0c8696e06a3ca6ab7
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 628f93f477d188cb4400be9a12cdfe09badcb971..59d5f89403a33d402910a0adca13edd14607431f 100644
index 28ea58a154d5a572268004ff9d36a5ae99f291e9..1692abcd9162f37beac489f1c704e0b8d3a6482a 100644
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -139,6 +139,46 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
@@ -140,6 +140,46 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
}
// Purpur end - Ridables
@@ -667,7 +667,7 @@ index 628f93f477d188cb4400be9a12cdfe09badcb971..59d5f89403a33d402910a0adca13edd1
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HorseHasRider(this)); // Purpur - Ridables
@@ -1057,7 +1097,7 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
@@ -1058,7 +1098,7 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
spawnGroupData = new AgeableMob.AgeableMobGroupData(0.2F);
}
@@ -873,10 +873,10 @@ index c916c28b0d3115588cedf84cf70469b6f6050ec9..6684f5dfb7dec101bad15b7ede3d9fd3
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index 1e453cdbe3c290209fd2fb912a90fb44a642959a..0e371655c8a500bad69626475222f9e726013c02 100644
index 52cdadd752c7e470a22eaac70143766d0ad46843..e479dd9e94ee931b6e9001f89dc36406c3dde209 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -79,6 +79,14 @@ public class Sheep extends Animal implements Shearable {
@@ -80,6 +80,14 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end - Ridables
@@ -892,10 +892,10 @@ index 1e453cdbe3c290209fd2fb912a90fb44a642959a..0e371655c8a500bad69626475222f9e7
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 1013898f40c82b64bc62eb99365d10a57e8f66b5..cd6a5173e2c6d49c7df9baae464b391ea1fdd620 100644
index 3d5cf62bd9bd99a978b7dc535675178deb695af0..eb6675394ecc5bba67e0f8bb0220ad92ef2b5e4f 100644
--- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -105,6 +105,14 @@ public class Sniffer extends Animal {
@@ -106,6 +106,14 @@ public class Sniffer extends Animal {
}
// Purpur end - Ridables
@@ -911,10 +911,10 @@ index 1013898f40c82b64bc62eb99365d10a57e8f66b5..cd6a5173e2c6d49c7df9baae464b391e
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 901138575d9468374565d395b56bfaeb353479f7..56db9816b52aed4facc80c95ec664cd98c6daca2 100644
index b452d7c881f9b90ad429e9a522b17dfdbb480c31..826c56281f1452fd1f4f9fba12a1fd169532e8cf 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -208,6 +208,14 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -209,6 +209,14 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end - Ridables
@@ -930,10 +930,10 @@ index 901138575d9468374565d395b56bfaeb353479f7..56db9816b52aed4facc80c95ec664cd9
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index f695e3ba62a4047d8203c0399790d646e97309f7..81f73a5b400a346ee86285bf4ca6c846c0c4b87e 100644
index 743abfe1eceaa8e9530790abdc787d3765c1191e..52c959961a13bd3b85a262128b0950c60f96dc2f 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -165,6 +165,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -166,6 +166,13 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end - Ridables
@@ -947,7 +947,7 @@ index f695e3ba62a4047d8203c0399790d646e97309f7..81f73a5b400a346ee86285bf4ca6c846
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
@@ -1063,7 +1070,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1064,7 +1071,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected float sanitizeScale(float scale) {
@@ -957,10 +957,10 @@ index f695e3ba62a4047d8203c0399790d646e97309f7..81f73a5b400a346ee86285bf4ca6c846
// CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time.
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 151bfd4de9a11642ca128e91a6ed80d41820b358..8e5e364d297a3eb55b67ce7081ec7548cbf7f3a6 100644
index 03167b61a9f2886d31881af809d7bca7be325872..3b037d2565fb30f68384d2b391f6d8219fdc9732 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -213,6 +213,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -214,6 +214,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
}
// Purpur end - Ridables
@@ -975,7 +975,7 @@ index 151bfd4de9a11642ca128e91a6ed80d41820b358..8e5e364d297a3eb55b67ce7081ec7548
@Override
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
@@ -435,7 +443,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -436,7 +444,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
this.setInvulnerableTicks(i);
if (this.tickCount % 10 == 0) {
@@ -985,10 +985,10 @@ index 151bfd4de9a11642ca128e91a6ed80d41820b358..8e5e364d297a3eb55b67ce7081ec7548
} else {
super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index 937300689b75486ba582b6dbe294c4355dc31d9e..8621ab150da50116260cd76821c02109cd32e351 100644
index 1571709d83b8e01707dac274447419413ef82a43..cb536ec921c837b86c2c1dfbe1d6b08a9b18bf0f 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -75,6 +75,14 @@ public class Blaze extends Monster {
@@ -76,6 +76,14 @@ public class Blaze extends Monster {
}
// Purpur end - Ridables
@@ -1104,7 +1104,7 @@ index e5d16ca14a40d520dce43dd3d9b6347aefbd25d7..57fb334f670d35aa181b13e12fa2c5f3
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index eaa5cc7e72ba604d14e41975d24624f1def04656..b8fd334b9dd704d5d4502a6e051db09cced24f59 100644
index 6ded7dfa381d0041dffb914a85c2e835c0b4a493..ae532c1b5f838223d416564eab626a71b2d423e7 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -107,6 +107,14 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1161,10 +1161,10 @@ index 70cf903d95d35b539e9a299a4035c8ddde5e4b97..a5243b7969fec5d60b94368caf5e962c
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index efe4ed636d85624e4122880f95c634ffa7a3891a..9e4048d55a386aad22f2054632dff457b10f1068 100644
index 89319696240f0f58fdac19b7faff29546f0ba0de..30b75f7e7a79aaa602083eb07f125a3a5e5f19f9 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy {
@@ -75,6 +75,14 @@ public class Ghast extends Mob implements Enemy {
}
// Purpur end - Ridables
@@ -1201,10 +1201,10 @@ index dcbe6bbce0baa4fad7fe180944beeb6ca4026f7d..416bb85fc87b5f9e372f33df8fe27f12
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 3c20818bf6f86cb34666d12084caf13d409a35ca..70fbfe1d4d100d742712d19daf69c6b93891dab6 100644
index 8e5990d581dec09dccb1c05c636b9b617b289aac..d206d9b8563dfd38c0ff4c8b4abe00aa064a2305 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -90,6 +90,14 @@ public class Guardian extends Monster {
@@ -91,6 +91,14 @@ public class Guardian extends Monster {
}
// Purpur end - Ridables
@@ -1220,10 +1220,10 @@ index 3c20818bf6f86cb34666d12084caf13d409a35ca..70fbfe1d4d100d742712d19daf69c6b9
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index af1af1687bbbc9a60b71ad83879ca5cb5af15eef..43d4e0eb3defdd4c76896097788d2ba0970c33c9 100644
index 671796f230bec419c3c40ff89c410babd4a31628..18fde06fce29973871547db5f638ba05638a8b18 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -37,6 +37,18 @@ public class Husk extends Zombie {
@@ -38,6 +38,18 @@ public class Husk extends Zombie {
}
// Purpur end - Ridables
@@ -1297,10 +1297,10 @@ index 8b58e0a76c9651cacacb503391ef9b6a53a3ddbc..db9e4dff83640b1e499db944a0c1cf3b
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index d29752add305e97d2265606b7b4212c308072523..ba9368c601f0b720cc665b96f392be1370fb9556 100644
index cf297cb029ea2226f876eaec0dc0875b00abb281..f2af9bd8265d66711c7dcc8ef16893edfe8d918a 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -141,7 +141,10 @@ public class Phantom extends Mob implements Enemy {
@@ -142,7 +142,10 @@ public class Phantom extends Mob implements Enemy {
private void updatePhantomSizeInfo() {
this.refreshDimensions();
if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur - Ridables - Phantom flames on swoop
@@ -1312,7 +1312,7 @@ index d29752add305e97d2265606b7b4212c308072523..ba9368c601f0b720cc665b96f392be13
}
public int getPhantomSize() {
@@ -161,6 +164,23 @@ public class Phantom extends Mob implements Enemy {
@@ -162,6 +165,23 @@ public class Phantom extends Mob implements Enemy {
return this.getId() * 3;
}
@@ -1356,10 +1356,10 @@ index f75eab4f895c0ed381b65717dc106dc13325428a..748233be6bdfd735aa3ccc02a7ba21a4
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 91514bc1eb85eb224b8760f17cecc423c6206554..f43125ca7d52170a1ca2a54a5b2758794f25fbd1 100644
index 34a20b3d482b98c4fca961e5fd930b283b68dc41..47741944d11b55bcff46bb9abc2a059652a4f86a 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -93,6 +93,14 @@ public class Ravager extends Raider {
@@ -94,6 +94,14 @@ public class Ravager extends Raider {
}
// Purpur end - Ridables
@@ -1403,7 +1403,7 @@ index d9401842948fed8edd6d31fcf08da2747f1a3921..3909804ba8f9e220260efe6255ff2b29
private void setVariant(Optional<DyeColor> variant) {
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index b278c8cce74f16c49f579ca13688dabfce95d14d..23722456ce82dcc6b571b96e5c9b0d70005f9c2e 100644
index 2fb89fffb425afb0b0267fc45f8198b7b120d10c..276f8e8234ed461af57c7fe0b7ea0346c86b9698 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -56,6 +56,16 @@ public class Silverfish extends Monster {
@@ -1424,10 +1424,10 @@ index b278c8cce74f16c49f579ca13688dabfce95d14d..23722456ce82dcc6b571b96e5c9b0d70
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index c39072d9265b2640e3bd701dacb54aa629f3b230..8d1f83ba8042435a0dc1e6e1fb9873173efe277d 100644
index d225d9cd41bdb3b6e998f3ca38394d1d3fe8b64b..0a5d78da5f809afde38ebbbcec3798a7a5f0f9be 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -42,6 +42,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -43,6 +43,13 @@ public class Skeleton extends AbstractSkeleton {
}
// Purpur end - Ridables
@@ -1554,7 +1554,7 @@ index f03ec1e8985f2c81ad2ec13d136e4c0362be4fff..5d41885ceb7145a516a398da0d7553fa
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 6713498d873980bd979b864ab0ac6dfc9d4e1482..7fddf0a36b1c4a3f7fbab8b0319e00281e8acd90 100644
index 99fe282067a2aa54d8fdb72c226d27cab6966b6c..09211a8a5b893f878ad173c4ab71393c8f309f58 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -104,6 +104,14 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1592,10 +1592,10 @@ index c584a404838d5f8a916a27a74b4f4e8e3d5c1b1d..fdaf024a27825844105ef62baddf30e3
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index bed6ce6749df67c3a4966958801d13ccd9529b1d..60a6d8880e6d0009cfd136599ca6f1c1b07adc42 100644
index 8c88c5a719d15a90ba449eccf9fd568e1d2c4e8d..35dc597e5b0e703319eb5ff31bde0960b224fc40 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -73,6 +73,14 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -74,6 +74,14 @@ public class Witch extends Raider implements RangedAttackMob {
}
// Purpur end - Ridables
@@ -1630,10 +1630,10 @@ index 7061a0ae68ed28ea72335bb5eab013a6554abc07..4d4e04d9fb5b68897ffa6f299bd2009b
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index 68095374ffd82db27ed704eb82dd68c51071df19..5e52eab9a78db8a5652bdee7127d75921f641ab9 100644
index cab7d33f40eacdb0ba8a7058699eb2548e364524..e7e840ba5383c28e0167e7dd032359403ae3224a 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -103,6 +103,14 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -104,6 +104,14 @@ public class Zoglin extends Monster implements HoglinBase {
}
// Purpur end - Ridables
@@ -1649,10 +1649,10 @@ index 68095374ffd82db27ed704eb82dd68c51071df19..5e52eab9a78db8a5652bdee7127d7592
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 3f000e9a1be45134b12b46badc2b52d23b960e9a..6e106c03fc81ab9f5a9de80e86e0e46cf853a232 100644
index a2ee621ba8b242a4e4e68c3a0a1d8e63c1421c3f..c0bfb7fda27fe6da33918f69f4d50d2fb2b66063 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -119,6 +119,14 @@ public class Zombie extends Monster {
@@ -120,6 +120,14 @@ public class Zombie extends Monster {
}
// Purpur end - Ridables
@@ -1667,7 +1667,7 @@ index 3f000e9a1be45134b12b46badc2b52d23b960e9a..6e106c03fc81ab9f5a9de80e86e0e46c
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
@@ -631,7 +639,7 @@ public class Zombie extends Monster {
@@ -632,7 +640,7 @@ public class Zombie extends Monster {
}
protected void randomizeReinforcementsChance() {
@@ -1677,10 +1677,10 @@ index 3f000e9a1be45134b12b46badc2b52d23b960e9a..6e106c03fc81ab9f5a9de80e86e0e46c
class ZombieAttackTurtleEggGoal extends RemoveBlockGoal {
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index f9c119d38c2812cfeeb775e728f6c751bf748c85..1de823b94ee0e53109b4dd3e726f721eaed0acd4 100644
index f460df654393c0bd2e27b9fd96786d2e3fa5669e..bb716fb7d19568dbe51af161c3b1543ba6f5169c 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -90,6 +90,18 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -92,6 +92,18 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
// Purpur end - Ridables
@@ -1728,10 +1728,10 @@ index d4f036c7d4b6652c5585f1ce5af9b26f9ed5b856..b78ba21e6aa753e3df6545432038daa0
@Nullable
diff --git a/net/minecraft/world/entity/monster/creaking/Creaking.java b/net/minecraft/world/entity/monster/creaking/Creaking.java
index c3c4dfb89c807020c4147140bc23ba1ce5cfe888..f31a29531cc7d63bed5a4bcbe3986bcc366b6103 100644
index 86379fce8045722584736f1b39707f3d9a1fc4f4..6ab590b428e1a694b2538c53fabae9297b58b868 100644
--- a/net/minecraft/world/entity/monster/creaking/Creaking.java
+++ b/net/minecraft/world/entity/monster/creaking/Creaking.java
@@ -125,6 +125,14 @@ public class Creaking extends Monster {
@@ -126,6 +126,14 @@ public class Creaking extends Monster {
}
// Purpur end - Ridables
@@ -1747,10 +1747,10 @@ index c3c4dfb89c807020c4147140bc23ba1ce5cfe888..f31a29531cc7d63bed5a4bcbe3986bcc
protected BodyRotationControl createBodyControl() {
return new Creaking.CreakingBodyRotationControl(this);
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index f304dea5ee2216b5b239dc5ce145f0aa425f5938..b468ad62723c20b9961c8b4b9c0c34a9518d98ea 100644
index 9f4ef9292e89565c3de0d96bcc3c4c48d3c53dff..facab39612157cdc39bb7d8efad6e90d4fb7d001 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -112,6 +112,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -113,6 +113,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end - Ridables
@@ -1804,10 +1804,10 @@ index e1b1a909c7e92c5fa5e8f9c155bc57290ef6667b..31e38737806098795de0e87fbcaf60d4
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 5f982512eb04cbfff21e270026046a384bb01537..05d748a7de077694b1035d3e73f35f1f98419902 100644
index 7f9bd5695c960e88b9f59af4b67849db9c4ba10b..16c2db7705c594ba10af274c4f5fdd1d5623c6ae 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -271,6 +271,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -272,6 +272,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
// Purpur end - Ridables

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 235c179000b389c3b30bbe1764b837b634546512..f6b86ee7b9e5cc1b3ce0d5097e1ba8b566038a11 100644
index 0c3451caa323ce2553c0d7ee00e7bf8cc8766b2c..1328cc6402134042d5890bedaaacf6e9807eb5ec 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -882,6 +882,27 @@ public abstract class PlayerList {
@@ -883,6 +883,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API
@@ -37,10 +37,10 @@ index 235c179000b389c3b30bbe1764b837b634546512..f6b86ee7b9e5cc1b3ce0d5097e1ba8b5
// Paper start - whitelist verify event / login event
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 2c0b158c6e666941a073295e9b112f64ad5b6d90..21e0bd539188352c9db551c96af37a6a87a089d2 100644
index f279a628d6627080743d9f4c49ff8bfd13494fed..f30cb0815e757b54ba98ac1b226cf657448512e0 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -182,6 +182,7 @@ public abstract class Player extends Avatar implements ContainerUser {
@@ -183,6 +183,7 @@ public abstract class Player extends Avatar implements ContainerUser {
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
public int burpDelay = 0; // Purpur - Burp delay
public boolean canPortalInstant = false; // Purpur - Add portal permission bypass
@@ -159,10 +159,10 @@ index 4fe246e457bd9befcdcb6e2301bd55e949322d6f..5189125f4a66590b7842d19cd940de65
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
return new EnderChestBlockEntity(pos, state);
diff --git a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
index f8cad05f5f1692c9a8701ff01f33d83477600c34..a4a4150beab8f2fa409a2d1d495a56679aecbae3 100644
index 75c09a2079c89f9346391abdd01ef8790b9cbb13..04f6b3c328377091734a111f5a219379e32b5640 100644
--- a/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
@@ -58,7 +58,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -59,7 +59,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
}
// CraftBukkit end
private static final Component DEFAULT_NAME = Component.translatable("container.barrel");
@@ -180,7 +180,7 @@ index f8cad05f5f1692c9a8701ff01f33d83477600c34..a4a4150beab8f2fa409a2d1d495a5667
public final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() {
@Override
protected void onOpen(Level level, BlockPos pos, BlockState state) {
@@ -110,7 +119,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -111,7 +120,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@Override
public int getContainerSize() {
@@ -198,7 +198,7 @@ index f8cad05f5f1692c9a8701ff01f33d83477600c34..a4a4150beab8f2fa409a2d1d495a5667
}
@Override
@@ -130,7 +148,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@@ -131,7 +149,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
@Override
protected AbstractContainerMenu createMenu(int id, Inventory player) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index b329ac34ff7fb9fa15daca26e0d2593e2db59a6f..365739b67b6d62f3e7da529117349dcbc9a509da 100644
index 3624c08509131b1acbeaffc8c90f8b52d16d8d52..eb234fa15325d865ccd7c91026f83911a2c422d5 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1313,6 +1313,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1314,6 +1314,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
} else {
// Purpur start - Add boat fall damage config
if (damageSource.is(net.minecraft.tags.DamageTypeTags.IS_FALL)) {
@@ -21,7 +21,7 @@ index b329ac34ff7fb9fa15daca26e0d2593e2db59a6f..365739b67b6d62f3e7da529117349dcb
return false;
}
diff --git a/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/net/minecraft/world/entity/vehicle/AbstractMinecart.java
index 2ae92078d69e5ab3cc27085a9c5e5ccf9f2c175d..d3099eed865e1c0eb7eb1eab440100c1815f0386 100644
index 3454506b2d7ada401600e2adccd462a15bd86723..0c7e3e821183eddce764f066fb8f34f9908623b5 100644
--- a/net/minecraft/world/entity/vehicle/AbstractMinecart.java
+++ b/net/minecraft/world/entity/vehicle/AbstractMinecart.java
@@ -102,6 +102,10 @@ public abstract class AbstractMinecart extends VehicleEntity {

View File

@@ -43,10 +43,10 @@ index 6bb17ecbd93f6ced5436cf75f3695f44eedd4bd9..e60387c4ef2aa0fc35a559d75b1a7c15
public static final int VILLAGER_SLOT_OFFSET = 300;
private static final int VILLAGER_INVENTORY_SIZE = 8;
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 05d748a7de077694b1035d3e73f35f1f98419902..b7b290e9870f8f51af7e44f71b1e04ce9c552626 100644
index 16c2db7705c594ba10af274c4f5fdd1d5623c6ae..4a2fad1d8d6b20932b6be616e8e6b099daf715dd 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -268,6 +268,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -269,6 +269,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
@@ -54,7 +54,7 @@ index 05d748a7de077694b1035d3e73f35f1f98419902..b7b290e9870f8f51af7e44f71b1e04ce
}
// Purpur end - Ridables
@@ -276,6 +277,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -277,6 +278,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
this.getAttribute(Attributes.SCALE).setBaseValue(this.level().purpurConfig.villagerScale);
@@ -62,7 +62,7 @@ index 05d748a7de077694b1035d3e73f35f1f98419902..b7b290e9870f8f51af7e44f71b1e04ce
}
// Purpur end - Configurable entity base attributes
@@ -344,7 +346,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -345,7 +347,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public static AttributeSupplier.Builder createAttributes() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index be657ca79feed6a39fa5ca173d875e6678faf27e..01b7bdf66a2b52d204257e497cfccc11a20ce4b0 100644
index aeaf62b438fccc628ae3e8316d7965cdbea75731..2d0b13f76c2890eeef2c701a17d535e157195b29 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3750,7 +3750,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3753,7 +3753,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
.filter(equipmentSlot1 -> canGlideUsing(this.getItemBySlot(equipmentSlot1), equipmentSlot1))
.toList();
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options
diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java
index 453f9d6e9581165c59b959ea6bccc5387dff91bd..ee13dd20af2730f3051f77fb0e73ce5c8253bd4a 100644
index 4037f13778d21461c862c26a0fcc3c08e6d472ae..af8c33c6d8ecbc7c3d8a33fc740adc26a43c08b3 100644
--- a/net/minecraft/world/entity/monster/Drowned.java
+++ b/net/minecraft/world/entity/monster/Drowned.java
@@ -106,6 +106,23 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -33,10 +33,10 @@ index 453f9d6e9581165c59b959ea6bccc5387dff91bd..ee13dd20af2730f3051f77fb0e73ce5c
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index 4a617bb6bc3675d8cb42be0b5ae19befd4b3176f..557b2d684936c15299d7082a92ec8b08e7fab9a5 100644
index 18fde06fce29973871547db5f638ba05638a8b18..d3e1f5debbd34b8afff06498de48299da37c3add 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -49,6 +49,23 @@ public class Husk extends Zombie {
@@ -50,6 +50,23 @@ public class Husk extends Zombie {
}
// Purpur end - Configurable entity base attributes
@@ -61,10 +61,10 @@ index 4a617bb6bc3675d8cb42be0b5ae19befd4b3176f..557b2d684936c15299d7082a92ec8b08
EntityType<Husk> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 4f5d19c19887dc543c336bb72dac76c82503f792..73b6ffd6a1f27a5d49125b51d3396df5d84493f6 100644
index c0bfb7fda27fe6da33918f69f4d50d2fb2b66063..3095dfbba2c3e61a550abc7c48e91f5704909e03 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -127,6 +127,20 @@ public class Zombie extends Monster {
@@ -128,6 +128,20 @@ public class Zombie extends Monster {
}
// Purpur end - Configurable entity base attributes
@@ -85,7 +85,7 @@ index 4f5d19c19887dc543c336bb72dac76c82503f792..73b6ffd6a1f27a5d49125b51d3396df5
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
@@ -556,19 +570,18 @@ public class Zombie extends Monster {
@@ -557,19 +571,18 @@ public class Zombie extends Monster {
}
if (spawnGroupData instanceof Zombie.ZombieGroupData zombieGroupData) {
@@ -111,7 +111,7 @@ index 4f5d19c19887dc543c336bb72dac76c82503f792..73b6ffd6a1f27a5d49125b51d3396df5
Chicken chicken1 = EntityType.CHICKEN.create(this.level(), EntitySpawnReason.JOCKEY);
if (chicken1 != null) {
chicken1.snapTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F);
@@ -577,6 +590,7 @@ public class Zombie extends Monster {
@@ -578,6 +591,7 @@ public class Zombie extends Monster {
this.startRiding(chicken1, false, false);
level.addFreshEntity(chicken1, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit
}
@@ -120,10 +120,10 @@ index 4f5d19c19887dc543c336bb72dac76c82503f792..73b6ffd6a1f27a5d49125b51d3396df5
}
}
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 706c0cc803ede18f0790e94cfc989f0676199e7a..1d01131dae3900280d5c9ce9899f4afa09acfd46 100644
index bb716fb7d19568dbe51af161c3b1543ba6f5169c..cf88072320f46ec9cf2194f8debe05e33702521f 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -102,6 +102,23 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -104,6 +104,23 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
// Purpur end - Configurable entity base attributes
@@ -148,7 +148,7 @@ index 706c0cc803ede18f0790e94cfc989f0676199e7a..1d01131dae3900280d5c9ce9899f4afa
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index a6244a3d5d8e48b81147d6aed7ac1126e9ae5d64..325d0f32fd8824dc1c7067eb9c303bdfc122c706 100644
index b78ba21e6aa753e3df6545432038daa0070fa7b7..06e2207d7ea554226b02d65c7fb612a87da71caa 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -89,6 +89,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {

View File

@@ -72,10 +72,10 @@ index 9503ec9d44a6c0811639b7d0cf504d32fefff58d..ab878a0f789fa0dc3713eedac1bbcebc
@Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index ba9368c601f0b720cc665b96f392be1370fb9556..81f7223d49eac01899c877ba7e47515c17269151 100644
index f2af9bd8265d66711c7dcc8ef16893edfe8d918a..824b100154c82d8579833a4bebd7481934ba428a 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -49,6 +49,7 @@ public class Phantom extends Mob implements Enemy {
@@ -50,6 +50,7 @@ public class Phantom extends Mob implements Enemy {
@Nullable
public BlockPos anchorPoint;
Phantom.AttackPhase attackPhase = Phantom.AttackPhase.CIRCLE;
@@ -83,7 +83,7 @@ index ba9368c601f0b720cc665b96f392be1370fb9556..81f7223d49eac01899c877ba7e47515c
// Paper start
@Nullable
public java.util.UUID spawningEntity;
@@ -108,6 +109,25 @@ public class Phantom extends Mob implements Enemy {
@@ -109,6 +110,25 @@ public class Phantom extends Mob implements Enemy {
}
// Purpur end - Ridables
@@ -109,7 +109,7 @@ index ba9368c601f0b720cc665b96f392be1370fb9556..81f7223d49eac01899c877ba7e47515c
@Override
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
@@ -121,9 +141,15 @@ public class Phantom extends Mob implements Enemy {
@@ -122,9 +142,15 @@ public class Phantom extends Mob implements Enemy {
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
@@ -128,7 +128,7 @@ index ba9368c601f0b720cc665b96f392be1370fb9556..81f7223d49eac01899c877ba7e47515c
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
}
@@ -510,6 +536,124 @@ public class Phantom extends Mob implements Enemy {
@@ -511,6 +537,124 @@ public class Phantom extends Mob implements Enemy {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index 81f7223d49eac01899c877ba7e47515c17269151..42089b34a1a1927247953b54cdc3300e1b600a90 100644
index 824b100154c82d8579833a4bebd7481934ba428a..8ebe339c91d61166078291dc9f5f70dd596cc58f 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -55,6 +55,7 @@ public class Phantom extends Mob implements Enemy {
@@ -56,6 +56,7 @@ public class Phantom extends Mob implements Enemy {
public java.util.UUID spawningEntity;
public boolean shouldBurnInDay = true;
// Paper end
@@ -16,7 +16,7 @@ index 81f7223d49eac01899c877ba7e47515c17269151..42089b34a1a1927247953b54cdc3300e
public Phantom(EntityType<? extends Phantom> type, Level level) {
super(type, level);
@@ -238,7 +239,11 @@ public class Phantom extends Mob implements Enemy {
@@ -239,7 +240,11 @@ public class Phantom extends Mob implements Enemy {
@Override
public void aiStep() {
@@ -29,7 +29,7 @@ index 81f7223d49eac01899c877ba7e47515c17269151..42089b34a1a1927247953b54cdc3300e
if (getRider() == null || !this.isControllable()) // Purpur - Ridables
this.igniteForSeconds(8.0F);
}
@@ -370,6 +375,7 @@ public class Phantom extends Mob implements Enemy {
@@ -371,6 +376,7 @@ public class Phantom extends Mob implements Enemy {
List<Player> nearbyPlayers = serverLevel.getNearbyPlayers(
this.attackTargeting, Phantom.this, Phantom.this.getBoundingBox().inflate(16.0, 64.0, 16.0)
);
@@ -37,7 +37,7 @@ index 81f7223d49eac01899c877ba7e47515c17269151..42089b34a1a1927247953b54cdc3300e
if (!nearbyPlayers.isEmpty()) {
nearbyPlayers.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed());
@@ -740,6 +746,12 @@ public class Phantom extends Mob implements Enemy {
@@ -741,6 +747,12 @@ public class Phantom extends Mob implements Enemy {
return false;
} else if (!target.isAlive()) {
return false;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make entity breeding times configurable
diff --git a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
index f673a7e78729edf13f094d547a0b995ea9ae7146..0fa52865c293e74c9e5f3d1fd93a0e24435a9055 100644
index da3ab634c608a3e3b636ba2a519b3b9bb97a1659..f67b2f110ff465368e03ff9cf24318a18034e9d8 100644
--- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
+++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
@@ -117,8 +117,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
@@ -118,8 +118,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, parent, partner, null, null, 0).isCancelled()) {
return Optional.empty();
}
@@ -20,12 +20,12 @@ index f673a7e78729edf13f094d547a0b995ea9ae7146..0fa52865c293e74c9e5f3d1fd93a0e24
+ // Purpur end - Make entity breeding times configurable
level.addFreshEntityWithPassengers(breedOffspring, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING);
// CraftBukkit end - call EntityBreedEvent
level.broadcastEntityEvent(breedOffspring, (byte)12);
level.broadcastEntityEvent(breedOffspring, EntityEvent.LOVE_HEARTS);
diff --git a/net/minecraft/world/entity/animal/Animal.java b/net/minecraft/world/entity/animal/Animal.java
index 3c77ce7861085f076bbdfb430af095420e7a12f5..643d40772770f0ebed0170bfed29e739f521d46d 100644
index 8ccab236d1b8b00485eb6608778c43c5581641bd..3ad84e5c6ca7eaab196ffe03986c71d2d4c2ab7b 100644
--- a/net/minecraft/world/entity/animal/Animal.java
+++ b/net/minecraft/world/entity/animal/Animal.java
@@ -41,6 +41,7 @@ public abstract class Animal extends AgeableMob {
@@ -42,6 +42,7 @@ public abstract class Animal extends AgeableMob {
@Nullable
public EntityReference<ServerPlayer> loveCause;
public @Nullable ItemStack breedItem; // CraftBukkit - Add breedItem variable
@@ -33,7 +33,7 @@ index 3c77ce7861085f076bbdfb430af095420e7a12f5..643d40772770f0ebed0170bfed29e739
protected Animal(EntityType<? extends Animal> type, Level level) {
super(type, level);
@@ -267,8 +268,10 @@ public abstract class Animal extends AgeableMob {
@@ -268,8 +269,10 @@ public abstract class Animal extends AgeableMob {
player.awardStat(Stats.ANIMALS_BRED);
CriteriaTriggers.BRED_ANIMALS.trigger(player, this, animal, baby);
} // Paper - Call EntityBreedEvent
@@ -45,12 +45,12 @@ index 3c77ce7861085f076bbdfb430af095420e7a12f5..643d40772770f0ebed0170bfed29e739
+ // Purpur end - Make entity breeding times configurable
this.resetLove();
animal.resetLove();
level.broadcastEntityEvent(this, (byte)18);
level.broadcastEntityEvent(this, EntityEvent.IN_LOVE_HEARTS);
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 30f25727b60d3d846956b878dc53542669de6203..025ac8b3088ad1e45d10094c7534375a917b3a73 100644
index b8dda3956152af17ce731d337ceb157d94bfb07b..f7d948294efcac1deac559d1fc9453f1dd0de659 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -481,6 +481,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -482,6 +482,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Configurable entity base attributes
@@ -65,10 +65,10 @@ index 30f25727b60d3d846956b878dc53542669de6203..025ac8b3088ad1e45d10094c7534375a
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 10365c8a63bfbefa49d243d0e51a79b7a2052238..2411e1a9e98f8db63e326b4bfbe759084e938431 100644
index 7550a645d7814bc97243088e2d0f366adb081c76..307f62466c9486ffdf8c2991fb805730198f38eb 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -125,6 +125,13 @@ public class Cat extends TamableAnimal {
@@ -126,6 +126,13 @@ public class Cat extends TamableAnimal {
}
// Purpur end - Configurable entity base attributes
@@ -119,10 +119,10 @@ index e7100834ce813e9814139c6d6e957fce15861ab7..298cbc74a7d26de1cd0fb356ce9e802c
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index ce46a3ff3a24666736211221fa9c5e69b8146be8..0fd04235d75a961465e44defbab9d116bcdd3f4a 100644
index 375ce5de2c041a7e61578c233ca0dc2ef3a588ca..2cdc3fee6dfae173215733cae2f92d7304d3c5d1 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -188,6 +188,13 @@ public class Fox extends Animal {
@@ -190,6 +190,13 @@ public class Fox extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -136,7 +136,7 @@ index ce46a3ff3a24666736211221fa9c5e69b8146be8..0fd04235d75a961465e44defbab9d116
@Override
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
@@ -993,8 +1000,10 @@ public class Fox extends Animal {
@@ -995,8 +1002,10 @@ public class Fox extends Animal {
CriteriaTriggers.BRED_ANIMALS.trigger(serverPlayer, this.animal, this.partner, fox);
}
@@ -186,10 +186,10 @@ index 743faa77525d68181ee38415399bc6078f9360f8..6cbf93991ee375d2051128721a409a3a
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 751aa4fea84db8e385001633df0c0d18ef6fde3a..c6f8e978df2ff28c0da243e44d26e33dacf221e5 100644
index 947c4d4a9f93c3da36ab5912ef362a60bdf75596..f047fa8d33ab6b7e01447f91e6c33e22e9ce9e02 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -89,6 +89,13 @@ public class Ocelot extends Animal {
@@ -90,6 +90,13 @@ public class Ocelot extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -204,7 +204,7 @@ index 751aa4fea84db8e385001633df0c0d18ef6fde3a..c6f8e978df2ff28c0da243e44d26e33d
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index c74f2a95a473464be3497ea39e366564d3f74e66..09e64eda71bfc1d55ec9fa37c6241c1d4cdc5842 100644
index 53e4d1d35be13f04267151e1e8f808c5ad796ef5..fbe06479b24fd0e76a063eeac96447fa88c7d45b 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -142,6 +142,13 @@ public class Panda extends Animal {
@@ -222,10 +222,10 @@ index c74f2a95a473464be3497ea39e366564d3f74e66..09e64eda71bfc1d55ec9fa37c6241c1d
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index debda7f54b05831d16014fb271b1a996822fecb5..eeccbee1f8e11862813abf0ed0d0f03bf28b376f 100644
index 01e2f610e8f0c54917899b54625b17fb0629df67..0749317e7f1a7b54759b9cd335419e7f92362715 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -201,6 +201,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -202,6 +202,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
// Purpur end - Configurable entity base attributes
@@ -276,10 +276,10 @@ index 2cf417f3bcf338a3edc4a2f71d8a700aca2e52dc..884137b428a1fe69bb61b9ae05b65235
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index 1b29d2a49350ff557e09b1297b3825f2cc28bad3..318729fdaa9c6dc7ee480618804a19fb29b6e76d 100644
index 7a2a95bb2fc1b7d2103da8ce7dd7f820af284f4f..78c6ccc6efafb11b42b051cc204341aa2d461307 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -153,6 +153,13 @@ public class Rabbit extends Animal {
@@ -155,6 +155,13 @@ public class Rabbit extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -294,10 +294,10 @@ index 1b29d2a49350ff557e09b1297b3825f2cc28bad3..318729fdaa9c6dc7ee480618804a19fb
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 88bd025f491ec17884007cc5c1b57c64461d2901..38b6678cbbce86e62efe08ece6634b1a5895dd84 100644
index 047a1b27d4af3d050784241c8a34fdebbd8e1f49..11a5f8d1a424531105436f96a097de6e9745be96 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -111,6 +111,13 @@ public class Turtle extends Animal {
@@ -112,6 +112,13 @@ public class Turtle extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -311,7 +311,7 @@ index 88bd025f491ec17884007cc5c1b57c64461d2901..38b6678cbbce86e62efe08ece6634b1a
public void setHomePos(BlockPos homePos) {
this.homePos = homePos;
}
@@ -351,8 +358,10 @@ public class Turtle extends Animal {
@@ -352,8 +359,10 @@ public class Turtle extends Animal {
}
this.turtle.setHasEgg(true);
@@ -325,10 +325,10 @@ index 88bd025f491ec17884007cc5c1b57c64461d2901..38b6678cbbce86e62efe08ece6634b1a
this.partner.resetLove();
RandomSource random = this.animal.getRandom();
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index 2343f4fcca96f4887c6fb00e8fdc43b959aba69e..cee8103cf9406600930f34b4801748db0e2fb8ed 100644
index 17d1a3d7ad33d99a57ea11be467e746b3dc99cbe..cf5e963d3ad0b5e22909a90dfe66d0a74ceff202 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -107,6 +107,13 @@ public class Armadillo extends Animal {
@@ -108,6 +108,13 @@ public class Armadillo extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -397,10 +397,10 @@ index 4979ae6dc8f6c2361b443b8bbe90738e4a199200..78863bd593acaa46f33a49fadbd0cdb0
protected Brain.Provider<Frog> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 3f264db00d9312cc1e8bfba8da0c829774ba00aa..673b90e3af9a9fdc03a4cbda9702e49def025d29 100644
index f417e9337a5102d6ec95a934c4126e1ec98a94d8..afcd9d3ea11d94ef811cce71f54f2a718619cc9f 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -131,6 +131,13 @@ public class Goat extends Animal {
@@ -132,6 +132,13 @@ public class Goat extends Animal {
}
// Purpur end - Ridables
@@ -541,10 +541,10 @@ index 6684f5dfb7dec101bad15b7ede3d9fd377aacd45..0d6d470b8680aed64d2b208b2ed9b037
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index 0e371655c8a500bad69626475222f9e726013c02..e5d495c12e2cd5a215f5b908ad65f6366eb47808 100644
index e479dd9e94ee931b6e9001f89dc36406c3dde209..baa18417b0b66f33aa3bb21032cd5816dc0ed800 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -87,6 +87,13 @@ public class Sheep extends Animal implements Shearable {
@@ -88,6 +88,13 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end - Configurable entity base attributes
@@ -559,10 +559,10 @@ index 0e371655c8a500bad69626475222f9e726013c02..e5d495c12e2cd5a215f5b908ad65f636
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index cd6a5173e2c6d49c7df9baae464b391ea1fdd620..d7e61ce6e2b77817f4eca913f2c319096e7f244f 100644
index eb6675394ecc5bba67e0f8bb0220ad92ef2b5e4f..7ef3c94f63c8a25d09e69b818ecdf79795803570 100644
--- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -113,6 +113,13 @@ public class Sniffer extends Animal {
@@ -114,6 +114,13 @@ public class Sniffer extends Animal {
}
// Purpur end - Configurable entity base attributes
@@ -577,10 +577,10 @@ index cd6a5173e2c6d49c7df9baae464b391ea1fdd620..d7e61ce6e2b77817f4eca913f2c31909
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 56db9816b52aed4facc80c95ec664cd98c6daca2..fc9b895b69385b04d56d071cbd498e61db6e6cb4 100644
index 826c56281f1452fd1f4f9fba12a1fd169532e8cf..70b14a44f3d504788218b85317bb3812007386b0 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -216,6 +216,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -217,6 +217,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end - Configurable entity base attributes
@@ -613,10 +613,10 @@ index 5d41885ceb7145a516a398da0d7553faeb386710..6760c826cf72cc704f54ea0e3d6aaffd
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 1062df067d6b98ffba27864450d8a867446aae79..2de148c874feeff23da144037562ded852e48a04 100644
index facab39612157cdc39bb7d8efad6e90d4fb7d001..1f5096856ab353e2920003a54f530c952e8988da 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -120,6 +120,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -121,6 +121,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end - Configurable entity base attributes

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java
index 3412b6dcc2d65986a4f657a6efd7b9fee63d5f8b..d2c5cf955cf8eb534f7bf0afebded9fdf209f117 100644
index f329459ad97ed4ea5297455d4741d008acb32750..8ba0e1345852693422e683d6479915ba9c13004a 100644
--- a/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -450,6 +450,7 @@ public class ArmorStand extends LivingEntity {
@@ -451,6 +451,7 @@ public class ArmorStand extends LivingEntity {
private org.bukkit.event.entity.EntityDeathEvent brokenByPlayer(ServerLevel level, DamageSource damageSource) { // Paper
ItemStack itemStack = new ItemStack(Items.ARMOR_STAND);
@@ -18,7 +18,7 @@ index 3412b6dcc2d65986a4f657a6efd7b9fee63d5f8b..d2c5cf955cf8eb534f7bf0afebded9fd
this.drops.add(new DefaultDrop(itemStack, stack -> Block.popResource(this.level(), this.blockPosition(), stack))); // CraftBukkit - add to drops // Paper - Restore vanilla drops behavior
return this.brokenByAnything(level, damageSource); // Paper
diff --git a/net/minecraft/world/entity/decoration/ItemFrame.java b/net/minecraft/world/entity/decoration/ItemFrame.java
index e6012d2cfe9b84782c8d5a0ba424eeda98086c09..6bf12f09c189ccaf45552f76d50f6743d93db0c3 100644
index 1b50d5a1c61fe15d06b3c1880e046c4a674df04e..4c4af42b57a7ed20f445d9247870195bd4e6a733 100644
--- a/net/minecraft/world/entity/decoration/ItemFrame.java
+++ b/net/minecraft/world/entity/decoration/ItemFrame.java
@@ -246,7 +246,11 @@ public class ItemFrame extends HangingEntity {
@@ -35,7 +35,7 @@ index e6012d2cfe9b84782c8d5a0ba424eeda98086c09..6bf12f09c189ccaf45552f76d50f6743
if (!item.isEmpty()) {
diff --git a/net/minecraft/world/entity/decoration/Painting.java b/net/minecraft/world/entity/decoration/Painting.java
index cc34cadac8896a5f546d0879e795fea08d0c3f98..26a08b16de2318d5080be59a29c5f11e3597426d 100644
index 97734dc34678a1f2e651c2229f62312c9a9cd8da..330d94275a7c89a11f9932fab758a1422202504e 100644
--- a/net/minecraft/world/entity/decoration/Painting.java
+++ b/net/minecraft/world/entity/decoration/Painting.java
@@ -182,7 +182,11 @@ public class Painting extends HangingEntity {
@@ -52,7 +52,7 @@ index cc34cadac8896a5f546d0879e795fea08d0c3f98..26a08b16de2318d5080be59a29c5f11e
}
}
diff --git a/net/minecraft/world/entity/vehicle/AbstractBoat.java b/net/minecraft/world/entity/vehicle/AbstractBoat.java
index 464d342d8e24f33745cb09d0d61aad35cf98ebdf..e6abec1b9245e07c8f0636272bece71865f59d9b 100644
index 2e8b923a97ed33ecc2802a0ac452e86e9f397bda..c5c516ea07949a295792da0ed7b63ea98de933b1 100644
--- a/net/minecraft/world/entity/vehicle/AbstractBoat.java
+++ b/net/minecraft/world/entity/vehicle/AbstractBoat.java
@@ -821,7 +821,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable {

View File

@@ -135,10 +135,10 @@ index f0583076ef62189508a392a76c3fb6b741bbdde9..dc4a9ddb8479e9d0c4895b19d7d677cd
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
} else {
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index b7b290e9870f8f51af7e44f71b1e04ce9c552626..33af111898df4e10367e6ef0d01eaf376bfc5819 100644
index 4a2fad1d8d6b20932b6be616e8e6b099daf715dd..03b4130179b34735243b3c0b86879dbb7d9f9f00 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -314,7 +314,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -315,7 +315,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
villagerBrain.setSchedule(Schedule.VILLAGER_DEFAULT);
villagerBrain.addActivityWithConditions(
Activity.WORK,
@@ -147,7 +147,7 @@ index b7b290e9870f8f51af7e44f71b1e04ce9c552626..33af111898df4e10367e6ef0d01eaf37
ImmutableSet.of(Pair.of(MemoryModuleType.JOB_SITE, MemoryStatus.VALUE_PRESENT))
);
}
@@ -963,7 +963,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -964,7 +964,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public boolean hasFarmSeeds() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing override to everything affected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 01b7bdf66a2b52d204257e497cfccc11a20ce4b0..ab3ddd1c52b561c56ee240ee68f5e5aca706b744 100644
index 2d0b13f76c2890eeef2c701a17d535e157195b29..38750906a1e15c1758c4b54eca6be0170047a2d1 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1949,7 +1949,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1950,7 +1950,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (this.level() instanceof ServerLevel serverLevel) {
boolean var6 = false;
if (this.dead && entitySource instanceof WitherBoss) { // Paper
@@ -18,7 +18,7 @@ index 01b7bdf66a2b52d204257e497cfccc11a20ce4b0..ab3ddd1c52b561c56ee240ee68f5e5ac
BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState();
if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 996e9e098ed510cdadc82e4f133b6aec509040d3..e4aaa451129d0ed11d855b53aae0c0279b899479 100644
index bb1d33f759b74174f5c1a45c351a2d2c243c4f03..2d0efa66b33daa78479d01bd5ed8d558f0e0ae2d 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -44,10 +44,10 @@ index 7776ad5d87ee8aadc9fcb36fbce62fe868754942..da974278e763df239f834c1d3653919d
} else if (!owner.getVillagerData().profession().is(VillagerProfession.FARMER) && !(level.purpurConfig.villagerClericsFarmWarts && owner.getVillagerData().profession().is(VillagerProfession.CLERIC))) { // Purpur - Option for Villager Clerics to farm Nether Wart
return false;
diff --git a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
index e026e07ca86700c864a3dceda6817fb7b6cb11e9..cf380a13d6d54d1a9e8d10b31124942d59fca80c 100644
index 244c8e54b3456194855a4516c4fceef85a2d3b78..4f01e8c34cbde1fa599ce0b767cc04e9c19b8dcc 100644
--- a/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
+++ b/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
@@ -30,7 +30,7 @@ public class BreakDoorGoal extends DoorInteractGoal {
@@ -31,7 +31,7 @@ public class BreakDoorGoal extends DoorInteractGoal {
@Override
public boolean canUse() {
return super.canUse()
@@ -57,10 +57,10 @@ index e026e07ca86700c864a3dceda6817fb7b6cb11e9..cf380a13d6d54d1a9e8d10b31124942d
&& !this.isOpen();
}
diff --git a/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
index 9a9c5ced9309abb14b27b20f7f1d9e93b505b796..18dfe585d8be8d0a2031a4d2f9bf73d8ed9179e1 100644
index 713a669799bdc095e9d01542831e604298c4a214..bdb1f17fe4d43fd28511002005d5f8ffc10fde11 100644
--- a/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
+++ b/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
@@ -62,7 +62,7 @@ public class EatBlockGoal extends Goal {
@@ -64,7 +64,7 @@ public class EatBlockGoal extends Goal {
BlockPos blockPos = this.mob.blockPosition();
final BlockState blockState = this.level.getBlockState(blockPos); // Paper - fix wrong block state
if (IS_EDIBLE.test(blockState)) { // Paper - fix wrong block state
@@ -69,14 +69,14 @@ index 9a9c5ced9309abb14b27b20f7f1d9e93b505b796..18dfe585d8be8d0a2031a4d2f9bf73d8
this.level.destroyBlock(blockPos, false);
}
@@ -70,7 +70,7 @@ public class EatBlockGoal extends Goal {
@@ -72,7 +72,7 @@ public class EatBlockGoal extends Goal {
} else {
BlockPos blockPos1 = blockPos.below();
if (this.level.getBlockState(blockPos1).is(Blocks.GRASS_BLOCK)) {
- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos1, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - Fix wrong block state
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockPos1, Blocks.DIRT.defaultBlockState(), !getServerLevel(this.level).getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING, getServerLevel(this.level).purpurConfig.sheepMobGriefingOverride))) { // CraftBukkit // Paper - Fix wrong block state // Purpur - Add mobGriefing override to everything affected
this.level.levelEvent(2001, blockPos1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState()));
this.level.setBlock(blockPos1, Blocks.DIRT.defaultBlockState(), 2);
this.level.levelEvent(LevelEvent.PARTICLES_DESTROY_BLOCK, blockPos1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState()));
this.level.setBlock(blockPos1, Blocks.DIRT.defaultBlockState(), Block.UPDATE_CLIENTS);
}
diff --git a/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
index 962c0b327a46cf0c58904466d3bcb608f474c329..72cc1d2cc76dd564b7fd5c797e8e784b9a343d8a 100644
@@ -92,10 +92,10 @@ index 962c0b327a46cf0c58904466d3bcb608f474c329..72cc1d2cc76dd564b7fd5c797e8e784b
} else if (this.nextStartTick > 0) {
this.nextStartTick--;
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 0fd04235d75a961465e44defbab9d116bcdd3f4a..51e28983b67edcd744f38aba38c704dfd2ffff6e 100644
index 2cdc3fee6dfae173215733cae2f92d7304d3c5d1..0f32571b193ba48540c283026e5a5d99314951fe 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -1058,7 +1058,7 @@ public class Fox extends Animal {
@@ -1060,7 +1060,7 @@ public class Fox extends Animal {
}
protected void onReachedTarget() {
@@ -105,10 +105,10 @@ index 0fd04235d75a961465e44defbab9d116bcdd3f4a..51e28983b67edcd744f38aba38c704df
if (blockState.is(Blocks.SWEET_BERRY_BUSH)) {
this.pickSweetBerries(blockState);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index 318729fdaa9c6dc7ee480618804a19fb29b6e76d..5e194a54a3a8d350c08edcba312e95b46db6c300 100644
index 78c6ccc6efafb11b42b051cc204341aa2d461307..f45ae44b37b512bf63e719ff15b538431a2c7e7f 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -648,7 +648,7 @@ public class Rabbit extends Animal {
@@ -650,7 +650,7 @@ public class Rabbit extends Animal {
@Override
public boolean canUse() {
if (this.nextStartTick <= 0) {
@@ -131,10 +131,10 @@ index d6f2a04cf04090e3cb68f5111d47bff9f1243568..20f73d895bc55581c62283825a6d5296
}
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 81f73a5b400a346ee86285bf4ca6c846c0c4b87e..1f9db9786995744c5ca5d97d8cf46fdd69aa8aa5 100644
index 52c959961a13bd3b85a262128b0950c60f96dc2f..bf9c295408902dc02b96e54959231338cd52c29c 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -544,7 +544,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -545,7 +545,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockPos blockPos = new BlockPos(i, i1, i2);
BlockState blockState = level.getBlockState(blockPos);
if (!blockState.isAir() && !blockState.is(BlockTags.DRAGON_TRANSPARENT)) {
@@ -144,10 +144,10 @@ index 81f73a5b400a346ee86285bf4ca6c846c0c4b87e..1f9db9786995744c5ca5d97d8cf46fdd
//flag1 = level.removeBlock(blockPos, false) || flag1;
flag1 = true;
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 8e5e364d297a3eb55b67ce7081ec7548cbf7f3a6..f6af57f402847e0f9af6a00b387d8a4b3e4d2afe 100644
index 3b037d2565fb30f68384d2b391f6d8219fdc9732..6d35cce3fde4d0cee5fa1266d831fdf97ad85d35 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -495,7 +495,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -496,7 +496,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
if (this.destroyBlocksTick > 0) {
this.destroyBlocksTick--;
@@ -157,7 +157,7 @@ index 8e5e364d297a3eb55b67ce7081ec7548cbf7f3a6..f6af57f402847e0f9af6a00b387d8a4b
int alternativeTarget = Mth.floor(this.getBbWidth() / 2.0F + 1.0F);
int floor = Mth.floor(this.getBbHeight());
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index b8fd334b9dd704d5d4502a6e051db09cced24f59..e6304680a8f2e9fb5fdcfd166471fd3355fb643c 100644
index ae532c1b5f838223d416564eab626a71b2d423e7..0d2fb6a1b4c8e02e40afa612744e259ef3230c0a 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -513,7 +513,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -192,10 +192,10 @@ index a5243b7969fec5d60b94368caf5e962c348c4135..24d104036902b8aaf79325e33d3063cc
} else {
List<Sheep> nearbyEntities = serverLevel.getNearbyEntities(
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index f43125ca7d52170a1ca2a54a5b2758794f25fbd1..a1fb74b51f51c045eed0fe09eceafa6d533babe2 100644
index 47741944d11b55bcff46bb9abc2a059652a4f86a..0220bb3add91779979cf7591dc1ea18f69f9e7c4 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -179,7 +179,7 @@ public class Ravager extends Raider {
@@ -180,7 +180,7 @@ public class Ravager extends Raider {
if (this.level() instanceof ServerLevel serverLevel
&& this.horizontalCollision
@@ -205,7 +205,7 @@ index f43125ca7d52170a1ca2a54a5b2758794f25fbd1..a1fb74b51f51c045eed0fe09eceafa6d
AABB aabb = this.getBoundingBox().inflate(0.2);
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 23722456ce82dcc6b571b96e5c9b0d70005f9c2e..97662c39001b4433601f46ef83f28c0ee916c02a 100644
index 276f8e8234ed461af57c7fe0b7ea0346c86b9698..d81ed52599cf4cba49726f2ad9da4ce1dab14df1 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -170,7 +170,7 @@ public class Silverfish extends Monster {
@@ -307,10 +307,10 @@ index 8d8315edfb69b062ed5e3d957f4043ec411dd5d7..4d72b60489e9c684905ca251ead011aa
return true;
} else if (this.mob.getCurrentRaid().isOver()) {
diff --git a/net/minecraft/world/level/GameRules.java b/net/minecraft/world/level/GameRules.java
index c6e9dac65474cc9c8a1200756b5be45c22fe1637..22c558f6ed1d2593b7bd1505730cd25c804c5eda 100644
index b159cae4d9c1274de14f3044c9d22a1231c639e5..57fc1c8bb1350dad26a616d2a8530df73fdf38da 100644
--- a/net/minecraft/world/level/GameRules.java
+++ b/net/minecraft/world/level/GameRules.java
@@ -365,6 +365,13 @@ public class GameRules {
@@ -366,6 +366,13 @@ public class GameRules {
this.<T>getRule(key).setFrom(rule, level); // CraftBukkit - per-world
}
@@ -351,7 +351,7 @@ index 9883e6d1a1b76155c8ba1817fda6615b4742e18e..dc1ad33f801c308871931d271f97ff91
// CraftBukkit start - Interact soil
org.bukkit.event.Cancellable cancellable;
diff --git a/net/minecraft/world/level/block/PowderSnowBlock.java b/net/minecraft/world/level/block/PowderSnowBlock.java
index cfc0fda316d14c178a663dbbd4e19f1469519f0f..99abf0f4e73cbfe916901dfc9081fec6e437c758 100644
index e3a11a1f68e2aa89610dfda25c0f1f11fd3427aa..525644c33b9d1b42c86b93145c7120f6bc87b5e5 100644
--- a/net/minecraft/world/level/block/PowderSnowBlock.java
+++ b/net/minecraft/world/level/block/PowderSnowBlock.java
@@ -96,7 +96,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
@@ -364,7 +364,7 @@ index cfc0fda316d14c178a663dbbd4e19f1469519f0f..99abf0f4e73cbfe916901dfc9081fec6
}
// CraftBukkit end
diff --git a/net/minecraft/world/level/block/TurtleEggBlock.java b/net/minecraft/world/level/block/TurtleEggBlock.java
index 7be238baf5373296fa5192704969307146e2dfa4..0d8d9b560eadce88f0b334270767ee1d53c7cf79 100644
index 6fd922a7cf1c9679344af91e817469350b01de17..90d2317ca3e05bb41a1d03a8ccbc57d84f79f70c 100644
--- a/net/minecraft/world/level/block/TurtleEggBlock.java
+++ b/net/minecraft/world/level/block/TurtleEggBlock.java
@@ -214,7 +214,7 @@ public class TurtleEggBlock extends Block {

View File

@@ -23,10 +23,10 @@ index cbb7e0591dc761d0566ac99dc6e5697b3ba4eeda..a10a1e26d0260968c6becd1e9d684360
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index 947619d07ef381ab79774b3f6cdc4c2454b632cb..9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4 100644
index 4624aca3dc3054ce7558023033fc953aedd33d88..a64afb30454ee537b0e044d6d55ce0b0a8e944ea 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -111,6 +111,13 @@ public class Bat extends AmbientCreature {
@@ -112,6 +112,13 @@ public class Bat extends AmbientCreature {
}
// Purpur end - Configurable entity base attributes
@@ -41,10 +41,10 @@ index 947619d07ef381ab79774b3f6cdc4c2454b632cb..9dd4d9a10df973fbf4e4fc63a8a7b704
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 025ac8b3088ad1e45d10094c7534375a917b3a73..234f02e0b75c6b9a8f52c440c680b539ee783f91 100644
index f7d948294efcac1deac559d1fc9453f1dd0de659..b2b234490aba52c8125c0644f0176fe825b63e91 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -184,7 +184,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -185,7 +185,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
// Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
@@ -53,7 +53,7 @@ index 025ac8b3088ad1e45d10094c7534375a917b3a73..234f02e0b75c6b9a8f52c440c680b539
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -488,6 +488,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -489,6 +489,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Make entity breeding times configurable
@@ -68,10 +68,10 @@ index 025ac8b3088ad1e45d10094c7534375a917b3a73..234f02e0b75c6b9a8f52c440c680b539
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 2411e1a9e98f8db63e326b4bfbe759084e938431..842c03df5a4ee67192f2850b89be45648024fd17 100644
index 307f62466c9486ffdf8c2991fb805730198f38eb..09467cb1f8f3c6978771464b292e33a1396d76e3 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -132,6 +132,13 @@ public class Cat extends TamableAnimal {
@@ -133,6 +133,13 @@ public class Cat extends TamableAnimal {
}
// Purpur end - Make entity breeding times configurable
@@ -140,10 +140,10 @@ index 298cbc74a7d26de1cd0fb356ce9e802c0cc3a1ca..a71b6c8a0c48d9c7121e7d29cff6d388
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index 71147da158f389207c032bc8e952ddb677e6d0ee..aaeb8a787158171920993719afcacc58ffd0f5a2 100644
index caf0f3c0690344fafb9a52a55f81b25ea6aa91a9..b89f87425721e540d612b62bd3a78eb6d3fcfaf7 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -159,6 +159,13 @@ public class Dolphin extends AgeableWaterCreature {
@@ -160,6 +160,13 @@ public class Dolphin extends AgeableWaterCreature {
}
// Purpur end - Configurable entity base attributes
@@ -158,10 +158,10 @@ index 71147da158f389207c032bc8e952ddb677e6d0ee..aaeb8a787158171920993719afcacc58
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 51e28983b67edcd744f38aba38c704dfd2ffff6e..22058c67eff5204202b71d2df9db3e59c2e5f916 100644
index 0f32571b193ba48540c283026e5a5d99314951fe..71def83ec7b69832dbb0af4eaa012e25673e38b3 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -195,6 +195,13 @@ public class Fox extends Animal {
@@ -197,6 +197,13 @@ public class Fox extends Animal {
}
// Purpur end - Make entity breeding times configurable
@@ -194,10 +194,10 @@ index 5f7ab269e406e6d6912a58b3b48123d6c4da282c..dbc01564e23e7785e85b16f100925d36
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index 89799cb1545b29ff10c25096e5ec7ba12af74eb1..4a7c6dedb23ac1057eda80de4a2cd54fe3e6f76f 100644
index a8ae43ab84d746e8f046b52410602607e759761e..54b7edced2b95f874d9ef7ba21418a68e9bd6291 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -100,6 +100,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -101,6 +101,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
}
// Purpur end - Configurable entity base attributes
@@ -230,10 +230,10 @@ index 6cbf93991ee375d2051128721a409a3a7a9064e8..ddd763cc38e8c624db7ef207f244961b
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index c6f8e978df2ff28c0da243e44d26e33dacf221e5..125d324832623bb52ac1afd197862876a0f5f928 100644
index f047fa8d33ab6b7e01447f91e6c33e22e9ce9e02..15d0d05dd80744880da9192d3fdfe3bc0c3e9401 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -96,6 +96,13 @@ public class Ocelot extends Animal {
@@ -97,6 +97,13 @@ public class Ocelot extends Animal {
}
// Purpur end - Make entity breeding times configurable
@@ -248,7 +248,7 @@ index c6f8e978df2ff28c0da243e44d26e33dacf221e5..125d324832623bb52ac1afd197862876
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 09e64eda71bfc1d55ec9fa37c6241c1d4cdc5842..36ec50791543c4eabf7158aa8d6ba272b14f6cd6 100644
index fbe06479b24fd0e76a063eeac96447fa88c7d45b..4e9aa65002e4134600ee95b16bd14dcb6f1f46ee 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -149,6 +149,13 @@ public class Panda extends Animal {
@@ -266,10 +266,10 @@ index 09e64eda71bfc1d55ec9fa37c6241c1d4cdc5842..36ec50791543c4eabf7158aa8d6ba272
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index eeccbee1f8e11862813abf0ed0d0f03bf28b376f..f5c98b277984249ec077c5742854a3cb444eb68c 100644
index 0749317e7f1a7b54759b9cd335419e7f92362715..d31e85b63f41121678c67e6c284923251ef744f6 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -208,6 +208,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -209,6 +209,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
// Purpur end - Make entity breeding times configurable
@@ -320,7 +320,7 @@ index 884137b428a1fe69bb61b9ae05b652357daecc27..eda9e5965a6ff244288215188de8e05e
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index 8b895308ee7639396983c73dc4c2572c957df027..49f1d08239e92aa4e8f18ee8054c13e54089ed82 100644
index 7ce2f0397b05e98a1d5721b6f5674cfbe7d19333..0f3bf73faf5c8d4bae5af6d4a9c4fa1be8394a6b 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish {
@@ -338,10 +338,10 @@ index 8b895308ee7639396983c73dc4c2572c957df027..49f1d08239e92aa4e8f18ee8054c13e5
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index 5e194a54a3a8d350c08edcba312e95b46db6c300..fb773ac6f450f6632fd7af3d0c44af57075fdcce 100644
index f45ae44b37b512bf63e719ff15b538431a2c7e7f..0320fbe2d266366f85080487ac9533b672451cbb 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -160,6 +160,13 @@ public class Rabbit extends Animal {
@@ -162,6 +162,13 @@ public class Rabbit extends Animal {
}
// Purpur end - Make entity breeding times configurable
@@ -387,10 +387,10 @@ index 20f73d895bc55581c62283825a6d5296150ac707..6cb6ff86e3fd7b9dd2929669dc1b0d33
@Override
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index ad2be25e45b350c7d971cd750245dbfa2b27ccb5..38a2d3f1344a8a826ceca645279779beb3a4dde7 100644
index 4f8a5d0d6c3d302ebf8fcb3268f8e40b63686125..fcdab19016a3f92776447a51df9ea2796461ef9c 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -99,6 +99,13 @@ public class Squid extends AgeableWaterCreature {
@@ -100,6 +100,13 @@ public class Squid extends AgeableWaterCreature {
}
// Purpur end - Configurable entity base attributes
@@ -423,10 +423,10 @@ index 95368fd534c77e7d89ed6219f1f3948c428c256c..22a75b6b1e6f130027e39051f04267fb
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 38b6678cbbce86e62efe08ece6634b1a5895dd84..e9b19fe300f9d5caebe8603d0347eae834408809 100644
index 11a5f8d1a424531105436f96a097de6e9745be96..536a0cddb05e1224562528d19a69a9ef5c1e07f5 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -118,6 +118,13 @@ public class Turtle extends Animal {
@@ -119,6 +119,13 @@ public class Turtle extends Animal {
}
// Purpur end - Make entity breeding times configurable
@@ -459,10 +459,10 @@ index 277e955eabed07bdc50531dfe182de8cb05e56c2..c32a5f348e41d6ff733331b85baf32da
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index e50f9c7113063ce0c8696e06a3ca6ab768adc4af..5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92 100644
index cfe0bb8983dd1633085e03a6c2a57d99a0d822b8..e533edb6163cada2bc9bc9ed61bf333b2a2703b8 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -141,6 +141,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -143,6 +143,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
}
// Purpur end - Configurable entity base attributes
@@ -477,10 +477,10 @@ index e50f9c7113063ce0c8696e06a3ca6ab768adc4af..5095ddcf1a2a4d4f5cff6dbaeec39a4e
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 673b90e3af9a9fdc03a4cbda9702e49def025d29..b048ca99370c65446855e3867eeb29ddb6ad51f6 100644
index afcd9d3ea11d94ef811cce71f54f2a718619cc9f..60c97b44d3977eda2fa2c302aad3c7e337de51d9 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -138,6 +138,13 @@ public class Goat extends Animal {
@@ -139,6 +139,13 @@ public class Goat extends Animal {
}
// Purpur end - Make entity breeding times configurable
@@ -621,10 +621,10 @@ index 0d6d470b8680aed64d2b208b2ed9b037c96563d9..fd8a512910c886af1ae4e66edbf7f8d6
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index e5d495c12e2cd5a215f5b908ad65f6366eb47808..e204b349615be98ea9a143ca2bb73a3a0a32baa4 100644
index baa18417b0b66f33aa3bb21032cd5816dc0ed800..3bdadfed6a06b965193cc615c490f89de65d515e 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -94,6 +94,13 @@ public class Sheep extends Animal implements Shearable {
@@ -95,6 +95,13 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end - Make entity breeding times configurable
@@ -639,10 +639,10 @@ index e5d495c12e2cd5a215f5b908ad65f6366eb47808..e204b349615be98ea9a143ca2bb73a3a
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index fc9b895b69385b04d56d071cbd498e61db6e6cb4..4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a 100644
index 70b14a44f3d504788218b85317bb3812007386b0..9832cafd14d42d3bf92bb5791d6ded4008215998 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -223,6 +223,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -224,6 +224,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end - Make entity breeding times configurable
@@ -657,10 +657,10 @@ index fc9b895b69385b04d56d071cbd498e61db6e6cb4..4b1c93cf2e17ae85d3b34a49c15e2926
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 1f9db9786995744c5ca5d97d8cf46fdd69aa8aa5..a3fe470ee11475c90462c50d54bfb27658a9536f 100644
index bf9c295408902dc02b96e54959231338cd52c29c..5229ea2712436c4b087f1a159e3b1f680f0d237c 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -172,6 +172,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -173,6 +173,13 @@ public class EnderDragon extends Mob implements Enemy {
}
// Purpur end - Configurable entity base attributes
@@ -675,10 +675,10 @@ index 1f9db9786995744c5ca5d97d8cf46fdd69aa8aa5..a3fe470ee11475c90462c50d54bfb276
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index f6af57f402847e0f9af6a00b387d8a4b3e4d2afe..37919a338630efeb87accb7e0a7d86fddc03e858 100644
index 6d35cce3fde4d0cee5fa1266d831fdf97ad85d35..e4f3d21422ccf45aee34885cc7633f37ec0c9903 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -221,6 +221,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -222,6 +222,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
}
// Purpur end - Configurable entity base attributes
@@ -693,10 +693,10 @@ index f6af57f402847e0f9af6a00b387d8a4b3e4d2afe..37919a338630efeb87accb7e0a7d86fd
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index 8621ab150da50116260cd76821c02109cd32e351..e940633d5140bb19623cef9cc9d6acdae77ed392 100644
index cb536ec921c837b86c2c1dfbe1d6b08a9b18bf0f..8941252b8c91ce26097651ab32c139a53c43feb3 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -34,7 +34,7 @@ public class Blaze extends Monster {
@@ -35,7 +35,7 @@ public class Blaze extends Monster {
public Blaze(EntityType<? extends Blaze> type, Level level) {
super(type, level);
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur - Ridables
@@ -705,7 +705,7 @@ index 8621ab150da50116260cd76821c02109cd32e351..e940633d5140bb19623cef9cc9d6acda
this.setPathfindingMalus(PathType.LAVA, 8.0F);
this.setPathfindingMalus(PathType.DANGER_FIRE, 0.0F);
this.setPathfindingMalus(PathType.DAMAGE_FIRE, 0.0F);
@@ -157,7 +157,7 @@ public class Blaze extends Monster {
@@ -158,7 +158,7 @@ public class Blaze extends Monster {
@Override
public boolean isSensitiveToWater() {
@@ -787,7 +787,7 @@ index 57fb334f670d35aa181b13e12fa2c5f36da1dda6..1ea323a17440abbe36c9528e80e16981
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index e6304680a8f2e9fb5fdcfd166471fd3355fb643c..09cce24dcc6a57f02c020c7e035e7940ddf9a962 100644
index 0d2fb6a1b4c8e02e40afa612744e259ef3230c0a..f6cc9107702e5cfa985694c7c88ae21622cd39c6 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -87,7 +87,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -845,10 +845,10 @@ index 24d104036902b8aaf79325e33d3063ccea29e13e..9015643b47e2d20a5c75c5f4bf2ec663
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index fdbf14ff7e62d8db023b3d3bdf4ae685b5f085a8..f87e4b960fad01ceb62dc4c80ab80aaad5c7a986 100644
index 30b75f7e7a79aaa602083eb07f125a3a5e5f19f9..544f3564411138c59eaad2b0bf50ec01ceb319bf 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -82,6 +82,13 @@ public class Ghast extends Mob implements Enemy {
@@ -83,6 +83,13 @@ public class Ghast extends Mob implements Enemy {
}
// Purpur end - Configurable entity base attributes
@@ -881,10 +881,10 @@ index e6fb01e4e2146d6c6971d80af0f101d20c03950a..2204c729ce42e89a0b42b365e0060098
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1..68eb628b5019c60df9f8bdfc7d47a6e68913fbd4 100644
index d206d9b8563dfd38c0ff4c8b4abe00aa064a2305..901338319b78e538208f72ead289f7277fd00eb9 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -98,6 +98,13 @@ public class Guardian extends Monster {
@@ -99,6 +99,13 @@ public class Guardian extends Monster {
}
// Purpur end - Configurable entity base attributes
@@ -899,10 +899,10 @@ index c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1..68eb628b5019c60df9f8bdfc7d47a6e6
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index c3f582260bce068a887b3211b7add009efe18bd1..b43f65cf25ac1a7b753cc0c879e42fcb6508376a 100644
index d3e1f5debbd34b8afff06498de48299da37c3add..fe593e955c93f5dd211db11a3e2ae8051e74e164 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -66,6 +66,13 @@ public class Husk extends Zombie {
@@ -67,6 +67,13 @@ public class Husk extends Zombie {
}
// Purpur end - Configurable jockey options
@@ -935,7 +935,7 @@ index b6872c94d769346ed2a8bb2406fc2b39ef64a67c..ee5e0b20f65a5f7d7dc2cf8fea2eff56
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index f39611741c4dacec2b1ad2d25ca9b7d47c188049..a5ca7a2f301cc8ae5878e583c2cf8aeef2085982 100644
index db9e4dff83640b1e499db944a0c1cf3b869bc314..bce9a085dfbe06bd4a869ae8d7d407ebbf7ad6b4 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -68,6 +68,13 @@ public class MagmaCube extends Slime {
@@ -953,10 +953,10 @@ index f39611741c4dacec2b1ad2d25ca9b7d47c188049..a5ca7a2f301cc8ae5878e583c2cf8aee
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index 42089b34a1a1927247953b54cdc3300e1b600a90..b4ff8b2f5fecffe808788014e0903b7238849172 100644
index 8ebe339c91d61166078291dc9f5f70dd596cc58f..f6ee097af3337c39baacad9a572443141c750223 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -129,6 +129,13 @@ public class Phantom extends Mob implements Enemy {
@@ -130,6 +130,13 @@ public class Phantom extends Mob implements Enemy {
}
// Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
@@ -989,10 +989,10 @@ index 748233be6bdfd735aa3ccc02a7ba21a45603ffa4..1aa2f744b0d875fb874cf23a0601fee4
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index a1fb74b51f51c045eed0fe09eceafa6d533babe2..5d7f6825d7bff413cac0fbf3a1d613bccd5102d6 100644
index 0220bb3add91779979cf7591dc1ea18f69f9e7c4..2dcf90e3be35290ed9cbe7cf19aa67d1f9acac80 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -101,6 +101,13 @@ public class Ravager extends Raider {
@@ -102,6 +102,13 @@ public class Ravager extends Raider {
}
// Purpur end - Configurable entity base attributes
@@ -1025,7 +1025,7 @@ index 3909804ba8f9e220260efe6255ff2b298a4448db..21b28d1ba59656b123aef95a7e18075d
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 97662c39001b4433601f46ef83f28c0ee916c02a..190312706c2e69bb0cf6e402e8e3ad7dd64b7b98 100644
index d81ed52599cf4cba49726f2ad9da4ce1dab14df1..58a759fdfae0ef20decc82842bdf4e9947f51807 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -66,6 +66,13 @@ public class Silverfish extends Monster {
@@ -1043,10 +1043,10 @@ index 97662c39001b4433601f46ef83f28c0ee916c02a..190312706c2e69bb0cf6e402e8e3ad7d
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 8d1f83ba8042435a0dc1e6e1fb9873173efe277d..1ae787edeb2011afb373fb44702f8a5150ee95b1 100644
index 0a5d78da5f809afde38ebbbcec3798a7a5f0f9be..c7bfa5214fd46c6b5e264314f86ca5c2904bf123 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -49,6 +49,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -50,6 +50,13 @@ public class Skeleton extends AbstractSkeleton {
}
// Purpur end - Configurable entity base attributes
@@ -1061,7 +1061,7 @@ index 8d1f83ba8042435a0dc1e6e1fb9873173efe277d..1ae787edeb2011afb373fb44702f8a51
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index beb504f9a5de48d9631585648a98cd3d2d682d76..f6e0ec18150f91d42f9a5b2f45e5a6e80c4ea031 100644
index 5af9f8182fa8bc3720cf30ed073ecc8050a76b43..7c5d3c30be47f0cac043e73153a1face837406dd 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -134,6 +134,13 @@ public class Slime extends Mob implements Enemy {
@@ -1137,7 +1137,7 @@ index 6760c826cf72cc704f54ea0e3d6aaffde4ac22c4..1004aaf885268d08e68e5d2465fae2b5
@Override
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 7fddf0a36b1c4a3f7fbab8b0319e00281e8acd90..75681ed441e5cbb4c01a433f9757795089af234b 100644
index 09211a8a5b893f878ad173c4ab71393c8f309f58..13285c9f233c3240729de4baf5f014e25b245547 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -112,6 +112,13 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1173,10 +1173,10 @@ index fdaf024a27825844105ef62baddf30e3b4412d28..33452593731c53f404059271b3fbb040
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index 60a6d8880e6d0009cfd136599ca6f1c1b07adc42..cafdebd0fa9a7458e5adaf109b3ebd4beed7a1ef 100644
index 35dc597e5b0e703319eb5ff31bde0960b224fc40..a785deb09373e20c13f8be49626d9619491b02c8 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -81,6 +81,13 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -82,6 +82,13 @@ public class Witch extends Raider implements RangedAttackMob {
}
// Purpur end - Configurable entity base attributes
@@ -1209,10 +1209,10 @@ index 4d4e04d9fb5b68897ffa6f299bd2009bb397da3d..778779c79c56e2ca438ecbb82fbb16d7
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index 5e52eab9a78db8a5652bdee7127d75921f641ab9..67998321b2c47d4aaf027c5fd17cb6d01e105b6f 100644
index e7e840ba5383c28e0167e7dd032359403ae3224a..d9ca3944fce3464be69ca1b3b5191e2d8de01e3d 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -111,6 +111,13 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -112,6 +112,13 @@ public class Zoglin extends Monster implements HoglinBase {
}
// Purpur end - Configurable entity base attributes
@@ -1227,10 +1227,10 @@ index 5e52eab9a78db8a5652bdee7127d75921f641ab9..67998321b2c47d4aaf027c5fd17cb6d0
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 787efb0297b675e18c2e237126c849ec98eeab5b..336588a6bc2e95a02656c98aa58865ef4d90a8d5 100644
index 3095dfbba2c3e61a550abc7c48e91f5704909e03..23484fe8ca8568d533e1604876900f75a96ac6d8 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -141,6 +141,13 @@ public class Zombie extends Monster {
@@ -142,6 +142,13 @@ public class Zombie extends Monster {
}
// Purpur end - Configurable jockey options
@@ -1245,10 +1245,10 @@ index 787efb0297b675e18c2e237126c849ec98eeab5b..336588a6bc2e95a02656c98aa58865ef
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index fa11f0fc2b036032fde14cc1a64df693eed1a017..1693fbcd47cc06409ac1849475feda7b5c4e437a 100644
index cf88072320f46ec9cf2194f8debe05e33702521f..5ae0e9d5f3c3b7a6f64775396acf061ff0d3561f 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -119,6 +119,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -121,6 +121,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
// Purpur end - Configurable jockey options
@@ -1263,7 +1263,7 @@ index fa11f0fc2b036032fde14cc1a64df693eed1a017..1693fbcd47cc06409ac1849475feda7b
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 8e226a6a732efee42ecf492676089ecf0b2d785a..d43e4d29a75dd66551eb432ceec1cc3fda738364 100644
index 06e2207d7ea554226b02d65c7fb612a87da71caa..46520af2dcf89a54374b933f5acdb8d2c66abbff 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -106,6 +106,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1281,10 +1281,10 @@ index 8e226a6a732efee42ecf492676089ecf0b2d785a..d43e4d29a75dd66551eb432ceec1cc3f
public void setPersistentAngerTarget(@Nullable UUID target) {
this.persistentAngerTarget = target;
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 2de148c874feeff23da144037562ded852e48a04..660d1f56cc74bc2a8764094d16772aace1234c15 100644
index 1f5096856ab353e2920003a54f530c952e8988da..053c47fcaf4e5d3bc8f9a3d913508a7816b15747 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -127,6 +127,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -128,6 +128,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end - Make entity breeding times configurable
@@ -1299,7 +1299,7 @@ index 2de148c874feeff23da144037562ded852e48a04..660d1f56cc74bc2a8764094d16772aac
public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 4e1a7b6caf8c0a3721a3a799261d7b63301c3b29..5bf58287dad04c96459982d55b5ac00646e37d53 100644
index de65ff0bf3de1d20360bc0ebb1cd3dc48c5560fe..293d6359469095c5faf87ec574ac8a475ce33ba9 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -161,6 +161,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1335,10 +1335,10 @@ index 31e38737806098795de0e87fbcaf60d4ab83ea6e..e988a65cbd1f71f488fa8221ef11b6b1
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 33af111898df4e10367e6ef0d01eaf376bfc5819..810494826a7b600941f3087f114064e157ba88e6 100644
index 03b4130179b34735243b3c0b86879dbb7d9f9f00..2a145e4eb0474950cbfb4a229891b4b2320d98d2 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -281,6 +281,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -282,6 +282,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
// Purpur end - Configurable entity base attributes

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 1c318158e1cc016cf7f26d352519f45bc244cee8..1b9f3e94206cc5627ca6c98f142766d4aaa7f4d7 100644
index 046cf7d2146f68bf1b959ae19fd034a241e12164..a45d8f5355becd08cbd247b3a489667bdfc73995 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -543,6 +543,24 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
@@ -35,10 +35,10 @@ index 1c318158e1cc016cf7f26d352519f45bc244cee8..1b9f3e94206cc5627ca6c98f142766d4
this.type = type;
this.level = level;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc3ee82633 100644
index 38750906a1e15c1758c4b54eca6be0170047a2d1..c528300563a5318969c5acab6971b2257a57a112 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -287,6 +287,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper
public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event
public net.kyori.adventure.util.TriState frictionState = net.kyori.adventure.util.TriState.NOT_SET; // Paper - Friction API
@@ -46,7 +46,7 @@ index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc
// CraftBukkit end
protected LivingEntity(EntityType<? extends LivingEntity> type, Level level) {
@@ -795,6 +796,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -796,6 +797,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.getSleepingPos().ifPresent(blockPos -> output.store("sleeping_pos", BlockPos.CODEC, blockPos));
DataResult<Dynamic<?>> dataResult = this.brain.serializeStart(NbtOps.INSTANCE).map(tag -> new Dynamic<>(NbtOps.INSTANCE, tag));
dataResult.resultOrPartial(LOGGER::error).ifPresent(dynamic -> output.store("Brain", Codec.PASSTHROUGH, (Dynamic<?>)dynamic));
@@ -54,7 +54,7 @@ index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc
if (this.lastHurtByPlayer != null) {
this.lastHurtByPlayer.store(output, "last_hurt_by_player");
output.putInt("last_hurt_by_player_memory_time", this.lastHurtByPlayerMemoryTime);
@@ -921,6 +923,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -922,6 +924,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
} // Paper - The sleeping pos will always also set the actual pos, so a desync suggests something is wrong
}, this::clearSleepingPos);
input.read("Brain", Codec.PASSTHROUGH).ifPresent(dynamic -> this.brain = this.makeBrain((Dynamic<?>)dynamic));
@@ -62,7 +62,7 @@ index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
@@ -3717,6 +3720,32 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3720,6 +3723,32 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
}
@@ -96,7 +96,7 @@ index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc
protected void applyInput() {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index e4aaa451129d0ed11d855b53aae0c0279b899479..19ce70712cb651f2cf086a0b490ef9008dbc4ce0 100644
index 2d0efa66b33daa78479d01bd5ed8d558f0e0ae2d..8ca2005133aaf76ecd437e8d9317ea05a303f79d 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -1589,19 +1589,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -186,10 +186,10 @@ index 7e43dd4b44335989127cc1b6e2c59d771876887a..14730f53561dec218b0fa6648c8de2b2
// Paper end - shouldBurnInDay API
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index b43f65cf25ac1a7b753cc0c879e42fcb6508376a..938c8e0708df47299a627b1c7f56793035dd219c 100644
index fe593e955c93f5dd211db11a3e2ae8051e74e164..ac02f6abf186a1f31e48fd4ed8181e22919c2f04 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -18,6 +18,7 @@ import net.minecraft.world.level.ServerLevelAccessor;
@@ -19,6 +19,7 @@ import net.minecraft.world.level.block.LevelEvent;
public class Husk extends Zombie {
public Husk(EntityType<? extends Husk> type, Level level) {
super(type, level);
@@ -197,7 +197,7 @@ index b43f65cf25ac1a7b753cc0c879e42fcb6508376a..938c8e0708df47299a627b1c7f567930
}
// Purpur start - Ridables
@@ -81,7 +82,7 @@ public class Husk extends Zombie {
@@ -82,7 +83,7 @@ public class Husk extends Zombie {
@Override
public boolean isSunSensitive() {
@@ -207,10 +207,10 @@ index b43f65cf25ac1a7b753cc0c879e42fcb6508376a..938c8e0708df47299a627b1c7f567930
@Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed156d80de 100644
index f6ee097af3337c39baacad9a572443141c750223..332c08a2d0d0fe2e8c7e9461bb73a73ddee91b94 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -53,7 +53,7 @@ public class Phantom extends Mob implements Enemy {
@@ -54,7 +54,7 @@ public class Phantom extends Mob implements Enemy {
// Paper start
@Nullable
public java.util.UUID spawningEntity;
@@ -219,7 +219,7 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
// Paper end
private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
@@ -62,6 +62,7 @@ public class Phantom extends Mob implements Enemy {
@@ -63,6 +63,7 @@ public class Phantom extends Mob implements Enemy {
this.xpReward = 5;
this.moveControl = new Phantom.PhantomMoveControl(this);
this.lookControl = new Phantom.PhantomLookControl(this);
@@ -227,7 +227,7 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
}
// Purpur start - Ridables
@@ -136,6 +137,16 @@ public class Phantom extends Mob implements Enemy {
@@ -137,6 +138,16 @@ public class Phantom extends Mob implements Enemy {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -244,7 +244,7 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
@Override
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
@@ -246,15 +257,7 @@ public class Phantom extends Mob implements Enemy {
@@ -247,15 +258,7 @@ public class Phantom extends Mob implements Enemy {
@Override
public void aiStep() {
@@ -261,7 +261,7 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
super.aiStep();
}
@@ -301,7 +304,7 @@ public class Phantom extends Mob implements Enemy {
@@ -302,7 +305,7 @@ public class Phantom extends Mob implements Enemy {
this.setPhantomSize(input.getIntOr("size", 0));
// Paper start
this.spawningEntity = input.read("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC).orElse(null);
@@ -270,7 +270,7 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
// Paper end
}
@@ -312,7 +315,7 @@ public class Phantom extends Mob implements Enemy {
@@ -313,7 +316,7 @@ public class Phantom extends Mob implements Enemy {
output.putInt("size", this.getPhantomSize());
// Paper start
output.storeNullable("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC, this.spawningEntity);
@@ -280,10 +280,10 @@ index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed
}
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207c256c22a 100644
index 23484fe8ca8568d533e1604876900f75a96ac6d8..1280605d393d0afda475c5d54b073824d141a460 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -91,11 +91,12 @@ public class Zombie extends Monster {
@@ -92,11 +92,12 @@ public class Zombie extends Monster {
private boolean canBreakDoors = false;
private int inWaterTime = 0;
public int conversionTime;
@@ -297,7 +297,7 @@ index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207
}
public Zombie(Level level) {
@@ -292,29 +293,7 @@ public class Zombie extends Monster {
@@ -293,29 +294,7 @@ public class Zombie extends Monster {
@Override
public void aiStep() {
@@ -328,7 +328,7 @@ index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207
super.aiStep();
}
@@ -373,6 +352,7 @@ public class Zombie extends Monster {
@@ -374,6 +353,7 @@ public class Zombie extends Monster {
// CraftBukkit end
}
@@ -336,7 +336,7 @@ index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207
public boolean isSunSensitive() {
return this.shouldBurnInDay; // Paper - Add more Zombie API
}
@@ -510,7 +490,7 @@ public class Zombie extends Monster {
@@ -511,7 +491,7 @@ public class Zombie extends Monster {
output.putBoolean("CanBreakDoors", this.canBreakDoors());
output.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1);
output.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1);
@@ -345,7 +345,7 @@ index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207
}
@Override
@@ -525,7 +505,7 @@ public class Zombie extends Monster {
@@ -526,7 +506,7 @@ public class Zombie extends Monster {
} else {
this.getEntityData().set(DATA_DROWNED_CONVERSION_ID, false);
}

View File

@@ -23,10 +23,10 @@ index a10a1e26d0260968c6becd1e9d68436071da8411..0a29ed8b1347ce7c854bb787e0d003ff
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index 9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4..a764dec7a349273b31a994c38e2c7374c6a1adb6 100644
index a64afb30454ee537b0e044d6d55ce0b0a8e944ea..f8b3cae866b68b71345c1d0cb578ea5346d83cba 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -118,6 +118,13 @@ public class Bat extends AmbientCreature {
@@ -119,6 +119,13 @@ public class Bat extends AmbientCreature {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -41,10 +41,10 @@ index 9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4..a764dec7a349273b31a994c38e2c7374
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 234f02e0b75c6b9a8f52c440c680b539ee783f91..968ec5a7188cc4e4a60956e12e44c4b746cf78d1 100644
index b2b234490aba52c8125c0644f0176fe825b63e91..5e054044444b464243c11574bbac9a0eabcc4073 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -495,6 +495,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -496,6 +496,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -59,10 +59,10 @@ index 234f02e0b75c6b9a8f52c440c680b539ee783f91..968ec5a7188cc4e4a60956e12e44c4b7
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 842c03df5a4ee67192f2850b89be45648024fd17..aff91b88efcb2e089d5d0faebb4fc8cb8a48accd 100644
index 09467cb1f8f3c6978771464b292e33a1396d76e3..dcfa9994cbc9213e15e6528c21149eed3294be2c 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -139,6 +139,13 @@ public class Cat extends TamableAnimal {
@@ -140,6 +140,13 @@ public class Cat extends TamableAnimal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -131,10 +131,10 @@ index 150ba89fee07dcb67550165597203f572d901f04..c3d225f555b44d73196a3c34ca0b3a0c
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index aaeb8a787158171920993719afcacc58ffd0f5a2..c790233d6f254a77a42ec5628441345a506c37b0 100644
index b89f87425721e540d612b62bd3a78eb6d3fcfaf7..9bf53221bf6652fa8e0a2ef47ac1524065ffe784 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -166,6 +166,13 @@ public class Dolphin extends AgeableWaterCreature {
@@ -167,6 +167,13 @@ public class Dolphin extends AgeableWaterCreature {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -149,10 +149,10 @@ index aaeb8a787158171920993719afcacc58ffd0f5a2..c790233d6f254a77a42ec5628441345a
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 22058c67eff5204202b71d2df9db3e59c2e5f916..a78af2629a9df93ea17b21c05f3d688692250920 100644
index 71def83ec7b69832dbb0af4eaa012e25673e38b3..e35772494c56918592ee5684dc5c86b5f2123a80 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -202,6 +202,13 @@ public class Fox extends Animal {
@@ -204,6 +204,13 @@ public class Fox extends Animal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -185,10 +185,10 @@ index dbc01564e23e7785e85b16f100925d36496ef51c..e85f17f362548f13a414a41f711900ad
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index 4a7c6dedb23ac1057eda80de4a2cd54fe3e6f76f..1c96cd8e369507dfedd7d3495861e0e270ad0cd6 100644
index 54b7edced2b95f874d9ef7ba21418a68e9bd6291..2b9595f060bb3d1172380e3b985d8320a2594dc9 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -107,6 +107,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -108,6 +108,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -221,10 +221,10 @@ index ddd763cc38e8c624db7ef207f244961bda0b5ae1..3b18ea446cc7e19295a9fa37b74c3a02
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 125d324832623bb52ac1afd197862876a0f5f928..72cbb5bf9023272f6e169a2956d2035706dd8a57 100644
index 15d0d05dd80744880da9192d3fdfe3bc0c3e9401..effabafb4e686f5d8464821fd59e23a56b87b90a 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -103,6 +103,13 @@ public class Ocelot extends Animal {
@@ -104,6 +104,13 @@ public class Ocelot extends Animal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -239,7 +239,7 @@ index 125d324832623bb52ac1afd197862876a0f5f928..72cbb5bf9023272f6e169a2956d20357
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 36ec50791543c4eabf7158aa8d6ba272b14f6cd6..c97ec93732d10197ee978477dc07c097d45bbe15 100644
index 4e9aa65002e4134600ee95b16bd14dcb6f1f46ee..9fae0d54fce37ef1b3511339ba05673e80ef6d01 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -156,6 +156,13 @@ public class Panda extends Animal {
@@ -257,10 +257,10 @@ index 36ec50791543c4eabf7158aa8d6ba272b14f6cd6..c97ec93732d10197ee978477dc07c097
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index f5c98b277984249ec077c5742854a3cb444eb68c..17d3814887adbc62d7a2f6eccc6e05e61b30bb29 100644
index d31e85b63f41121678c67e6c284923251ef744f6..09cc4b2e6b8479a54aa1c867fdc73eac0fdf7e35 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -215,6 +215,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -216,6 +216,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -311,7 +311,7 @@ index eda9e5965a6ff244288215188de8e05ebcb61f14..9ac8beb6075502e3b18064429cb71c5d
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index 49f1d08239e92aa4e8f18ee8054c13e54089ed82..6775cb8d78aaa7007077277b272825b7410877d4 100644
index 0f3bf73faf5c8d4bae5af6d4a9c4fa1be8394a6b..4dbc56c4e4668a6634d6a7ff603403e001942a78 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -73,6 +73,13 @@ public class Pufferfish extends AbstractFish {
@@ -329,10 +329,10 @@ index 49f1d08239e92aa4e8f18ee8054c13e54089ed82..6775cb8d78aaa7007077277b272825b7
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index fb773ac6f450f6632fd7af3d0c44af57075fdcce..f91e63d9bd382bf2ef76766def08342a91eae29c 100644
index 0320fbe2d266366f85080487ac9533b672451cbb..c5413f063c14ce2eccee28f1d8e0b57349968cbb 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -167,6 +167,13 @@ public class Rabbit extends Animal {
@@ -169,6 +169,13 @@ public class Rabbit extends Animal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -383,10 +383,10 @@ index 6cb6ff86e3fd7b9dd2929669dc1b0d339af9a95a..03071650204193f1130e8e17f280ae6a
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index 38a2d3f1344a8a826ceca645279779beb3a4dde7..7126ee1e2c950d37ec33204da1b6910bcb6e9e30 100644
index fcdab19016a3f92776447a51df9ea2796461ef9c..1e71f73622e0c11b3e3ff2ee5afbf6522d03922a 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -106,6 +106,13 @@ public class Squid extends AgeableWaterCreature {
@@ -107,6 +107,13 @@ public class Squid extends AgeableWaterCreature {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -419,10 +419,10 @@ index 22a75b6b1e6f130027e39051f04267fb436ae6de..64682d4cadcc15d6308f535591d130cf
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index e9b19fe300f9d5caebe8603d0347eae834408809..22401f6b05ab371568f76eb64af28bd762c21ce8 100644
index 536a0cddb05e1224562528d19a69a9ef5c1e07f5..75e367535ce46411fffdfbab89293146fc95782b 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -125,6 +125,13 @@ public class Turtle extends Animal {
@@ -126,6 +126,13 @@ public class Turtle extends Animal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -455,10 +455,10 @@ index c32a5f348e41d6ff733331b85baf32da839083fe..3cc8ee115e889ced4457596b9c5fce43
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index 5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92..088b2cf28f56d60167b03bcce5fbd2c47fa2de9a 100644
index e533edb6163cada2bc9bc9ed61bf333b2a2703b8..739deece6ae077b8fa1694eb6cc6ed9996dff09b 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -148,6 +148,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -150,6 +150,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
}
// Purpur end - Toggle for water sensitive mob damage
@@ -473,10 +473,10 @@ index 5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92..088b2cf28f56d60167b03bcce5fbd2c4
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index b048ca99370c65446855e3867eeb29ddb6ad51f6..6b6461a61a1738d64220f571b8cf7b46605327c0 100644
index 60c97b44d3977eda2fa2c302aad3c7e337de51d9..a226956bc47c5f6145c0dd4d3f957be43e60272b 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -145,6 +145,13 @@ public class Goat extends Animal {
@@ -146,6 +146,13 @@ public class Goat extends Animal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -617,10 +617,10 @@ index fd8a512910c886af1ae4e66edbf7f8d6fe0bc4f3..384bb954ea633c8e8ac239539925948b
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index e204b349615be98ea9a143ca2bb73a3a0a32baa4..21d66dd46650afae2091e236dfec760c096c34f8 100644
index 3bdadfed6a06b965193cc615c490f89de65d515e..2f90f1a5e4d2aad7fc1fe84bac6cf18ed8f35f4d 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -101,6 +101,13 @@ public class Sheep extends Animal implements Shearable {
@@ -102,6 +102,13 @@ public class Sheep extends Animal implements Shearable {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -635,10 +635,10 @@ index e204b349615be98ea9a143ca2bb73a3a0a32baa4..21d66dd46650afae2091e236dfec760c
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a..353507a7483afd6428fb10c461ff5c4162a97704 100644
index 9832cafd14d42d3bf92bb5791d6ded4008215998..8160e5f7c5fbc28c61653d8e57807636f6ab0eab 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -230,6 +230,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -231,6 +231,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -653,10 +653,10 @@ index 4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a..353507a7483afd6428fb10c461ff5c41
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 37919a338630efeb87accb7e0a7d86fddc03e858..b2c0dc521f46fe3aaf82c70626917af4141a6615 100644
index e4f3d21422ccf45aee34885cc7633f37ec0c9903..3e5c1a2fc6dba77982d53f75355b3694f7bc289f 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -228,6 +228,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -229,6 +229,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -671,10 +671,10 @@ index 37919a338630efeb87accb7e0a7d86fddc03e858..b2c0dc521f46fe3aaf82c70626917af4
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index e940633d5140bb19623cef9cc9d6acdae77ed392..354a4a10cce3fc3b7611ad99c0c7ed7d34f87b15 100644
index 8941252b8c91ce26097651ab32c139a53c43feb3..3f8d1c00bfb274edd2d9f5f278d8c5f9ff908584 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -83,6 +83,13 @@ public class Blaze extends Monster {
@@ -84,6 +84,13 @@ public class Blaze extends Monster {
}
// Purpur end - Configurable entity base attributes
@@ -761,7 +761,7 @@ index 1ea323a17440abbe36c9528e80e169816267005b..abb7496c293175828fde54ae2b4991aa
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 09cce24dcc6a57f02c020c7e035e7940ddf9a962..e4d6610c43a019e9e1e296703e80eecc4ffdd36c 100644
index f6cc9107702e5cfa985694c7c88ae21622cd39c6..29168e1536550b2e49d86dd17604e2da807495fc 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -115,6 +115,13 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -815,10 +815,10 @@ index 9015643b47e2d20a5c75c5f4bf2ec66399d4a2e5..274a40f0edc4d928570cf75ee1c51d1d
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index f87e4b960fad01ceb62dc4c80ab80aaad5c7a986..2b3b893c6fa05727df0f24cac67f97cb890054fe 100644
index 544f3564411138c59eaad2b0bf50ec01ceb319bf..eca52dae254689eced7b3ee12b83d193b8d3b49f 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -89,6 +89,13 @@ public class Ghast extends Mob implements Enemy {
@@ -90,6 +90,13 @@ public class Ghast extends Mob implements Enemy {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -851,10 +851,10 @@ index 2204c729ce42e89a0b42b365e0060098afcf68f9..b7edb5db6621e982a6a529c5319ba68a
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 68eb628b5019c60df9f8bdfc7d47a6e68913fbd4..24f7af91a59d4e8975cf8aece3a934aa927972e9 100644
index 901338319b78e538208f72ead289f7277fd00eb9..7f742ac64be0d4bcfb780da13a0e2f571438442b 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -105,6 +105,13 @@ public class Guardian extends Monster {
@@ -106,6 +106,13 @@ public class Guardian extends Monster {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -869,10 +869,10 @@ index 68eb628b5019c60df9f8bdfc7d47a6e68913fbd4..24f7af91a59d4e8975cf8aece3a934aa
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index 938c8e0708df47299a627b1c7f56793035dd219c..0bc9c1b235cd5ac771c7b0f200abe4fde38b7858 100644
index ac02f6abf186a1f31e48fd4ed8181e22919c2f04..ef261e61358bf466bdfdd6cfe982c5afe53d7c4d 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -74,6 +74,13 @@ public class Husk extends Zombie {
@@ -75,6 +75,13 @@ public class Husk extends Zombie {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -905,7 +905,7 @@ index ee5e0b20f65a5f7d7dc2cf8fea2eff56f8f56a41..e34c37a9a2eacc97f44fcb6d911cf215
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index a5ca7a2f301cc8ae5878e583c2cf8aeef2085982..da80b17668e4268f02999f553e0e829f8fbb0d10 100644
index bce9a085dfbe06bd4a869ae8d7d407ebbf7ad6b4..29da12b942736dfe8fa06a9eb5f132ae7c534d72 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -75,6 +75,13 @@ public class MagmaCube extends Slime {
@@ -923,10 +923,10 @@ index a5ca7a2f301cc8ae5878e583c2cf8aeef2085982..da80b17668e4268f02999f553e0e829f
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index c7d52c623d8616209ab742b69838beed156d80de..628fc869f5b4c33dfb2daf1e35db7c5df8aa28fd 100644
index 332c08a2d0d0fe2e8c7e9461bb73a73ddee91b94..359f376723f1fe8f50643d8eea6f22591580811d 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -147,6 +147,13 @@ public class Phantom extends Mob implements Enemy {
@@ -148,6 +148,13 @@ public class Phantom extends Mob implements Enemy {
public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; }
// Purpur end - API for any mob to burn daylight
@@ -959,10 +959,10 @@ index 1aa2f744b0d875fb874cf23a0601fee48ead66c2..8bc07bbf713ebd3afc8c0e62c92b5e11
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 5d7f6825d7bff413cac0fbf3a1d613bccd5102d6..7e137ae1bf2d2c0eae37a5ea857d4ea51d4044b7 100644
index 2dcf90e3be35290ed9cbe7cf19aa67d1f9acac80..a7deae32d5b1e9622152ec74de085110a8decbce 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -108,6 +108,13 @@ public class Ravager extends Raider {
@@ -109,6 +109,13 @@ public class Ravager extends Raider {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -995,7 +995,7 @@ index 21b28d1ba59656b123aef95a7e18075dae9bc236..99589855c69e76ecdfa9bb21b62e59f1
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 190312706c2e69bb0cf6e402e8e3ad7dd64b7b98..929ebc003b0dd7bea252e905fb9fa671dc54a252 100644
index 58a759fdfae0ef20decc82842bdf4e9947f51807..60c96e040d6941e66dc51c1b2cd7b85d70313efb 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -73,6 +73,13 @@ public class Silverfish extends Monster {
@@ -1013,10 +1013,10 @@ index 190312706c2e69bb0cf6e402e8e3ad7dd64b7b98..929ebc003b0dd7bea252e905fb9fa671
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 1ae787edeb2011afb373fb44702f8a5150ee95b1..717e34cbca2e70d80c2c9e2921d9a53cac1b3f8f 100644
index c7bfa5214fd46c6b5e264314f86ca5c2904bf123..2a380964ae999edfa5260c0730a79d9e8e4c1bfc 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -56,6 +56,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -57,6 +57,13 @@ public class Skeleton extends AbstractSkeleton {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1031,7 +1031,7 @@ index 1ae787edeb2011afb373fb44702f8a5150ee95b1..717e34cbca2e70d80c2c9e2921d9a53c
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index f6e0ec18150f91d42f9a5b2f45e5a6e80c4ea031..97d15b759d65e32df4d780ec4850b986fcaf6ead 100644
index 7c5d3c30be47f0cac043e73153a1face837406dd..a03b1d15aa8b41e7c22464e8b66811c41acdcef2 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -141,6 +141,13 @@ public class Slime extends Mob implements Enemy {
@@ -1103,7 +1103,7 @@ index 1004aaf885268d08e68e5d2465fae2b5566a4eff..da7644dd2b9e86ec8947250ff998fb55
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 75681ed441e5cbb4c01a433f9757795089af234b..39d164dbc8aac355987c1725411395919ce1685f 100644
index 13285c9f233c3240729de4baf5f014e25b245547..4b5b30a0c710e83ce2c193ceb16fc210fe4f87d8 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -119,6 +119,13 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1139,10 +1139,10 @@ index 33452593731c53f404059271b3fbb0407d75517c..e209b0ad1fa95d01387671b7dad4a347
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index cafdebd0fa9a7458e5adaf109b3ebd4beed7a1ef..76e051fee759ce86b3d410c250ebee31a678f459 100644
index a785deb09373e20c13f8be49626d9619491b02c8..ca1cd20e919d1223cec2756580e588e90d336cba 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -88,6 +88,13 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -89,6 +89,13 @@ public class Witch extends Raider implements RangedAttackMob {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1175,10 +1175,10 @@ index 778779c79c56e2ca438ecbb82fbb16d70d312524..51e2078912991266f2dac79775b1d570
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index 67998321b2c47d4aaf027c5fd17cb6d01e105b6f..2632dd89d2f5661137e2c09b8cd426fc40599f69 100644
index d9ca3944fce3464be69ca1b3b5191e2d8de01e3d..e2bf2bc45e4f8236ab47cf28c270dad748f80b50 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -118,6 +118,13 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -119,6 +119,13 @@ public class Zoglin extends Monster implements HoglinBase {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1193,10 +1193,10 @@ index 67998321b2c47d4aaf027c5fd17cb6d01e105b6f..2632dd89d2f5661137e2c09b8cd426fc
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 00e9383ad8251da600c84885c439a207c256c22a..7e13f2958f3935077fe25570567d2576f435028c 100644
index 1280605d393d0afda475c5d54b073824d141a460..2dd08e5ef413c37a682046071b83f595c8499cf2 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -149,6 +149,13 @@ public class Zombie extends Monster {
@@ -150,6 +150,13 @@ public class Zombie extends Monster {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1211,10 +1211,10 @@ index 00e9383ad8251da600c84885c439a207c256c22a..7e13f2958f3935077fe25570567d2576
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 1693fbcd47cc06409ac1849475feda7b5c4e437a..ee6ce9ccace1f602772542670d02bb5a4c8a4766 100644
index 5ae0e9d5f3c3b7a6f64775396acf061ff0d3561f..9c769b129764b4354f5dcbed821225ed045c86c8 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -126,6 +126,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -128,6 +128,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1229,7 +1229,7 @@ index 1693fbcd47cc06409ac1849475feda7b5c4e437a..ee6ce9ccace1f602772542670d02bb5a
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index d43e4d29a75dd66551eb432ceec1cc3fda738364..9ee3fcc538be14f2eea8ed97eeec93b05a9cb4f2 100644
index 46520af2dcf89a54374b933f5acdb8d2c66abbff..05bbd9588ae85256c46d8b0c2434a3bc8cb5f620 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -113,6 +113,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1247,10 +1247,10 @@ index d43e4d29a75dd66551eb432ceec1cc3fda738364..9ee3fcc538be14f2eea8ed97eeec93b0
public void setPersistentAngerTarget(@Nullable UUID target) {
this.persistentAngerTarget = target;
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 660d1f56cc74bc2a8764094d16772aace1234c15..c5f7213b91d7a533ff56e4789514b47adb791777 100644
index 053c47fcaf4e5d3bc8f9a3d913508a7816b15747..72dc725b8cd6a2fca26aae376f91ab3e246a810b 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -134,6 +134,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -135,6 +135,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -1265,7 +1265,7 @@ index 660d1f56cc74bc2a8764094d16772aace1234c15..c5f7213b91d7a533ff56e4789514b47a
public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 5bf58287dad04c96459982d55b5ac00646e37d53..dee71746e90f8a81e29ee35c3438219172509d6b 100644
index 293d6359469095c5faf87ec574ac8a475ce33ba9..9a1f1b8ff394e4849301508dd82669246eeba2de 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -168,6 +168,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1301,10 +1301,10 @@ index e988a65cbd1f71f488fa8221ef11b6b1a05dc554..ebe1b4e0b841906684561151919a5b3f
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 810494826a7b600941f3087f114064e157ba88e6..0ab9ac120703285baa563391653323c17d05b20b 100644
index 2a145e4eb0474950cbfb4a229891b4b2320d98d2..bfff91e5e252141f887d8965ecf1dd9ff1cebfe3 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -288,6 +288,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -289,6 +289,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
// Purpur end - Toggle for water sensitive mob damage

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/core/dispenser/DispenseItemBehavior.java
+++ b/net/minecraft/core/dispenser/DispenseItemBehavior.java
@@ -744,5 +_,22 @@
@@ -746,5 +_,22 @@
DispenserBlock.registerBehavior(Items.TNT_MINECART, new MinecartDispenseItemBehavior(EntityType.TNT_MINECART));
DispenserBlock.registerBehavior(Items.HOPPER_MINECART, new MinecartDispenseItemBehavior(EntityType.HOPPER_MINECART));
DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, new MinecartDispenseItemBehavior(EntityType.COMMAND_BLOCK_MINECART));

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -442,6 +_,9 @@
@@ -443,6 +_,9 @@
public boolean isRealPlayer; // Paper
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
@@ -10,7 +10,7 @@
// Paper start - rewrite chunk system
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
@@ -515,6 +_,9 @@
@@ -516,6 +_,9 @@
this.respawnConfig = input.read("respawn", ServerPlayer.RespawnConfig.CODEC).orElse(null);
this.spawnExtraParticlesOnFall = input.getBooleanOr("spawn_extra_particles_on_fall", false);
this.raidOmenPosition = input.read("raid_omen_position", BlockPos.CODEC).orElse(null);
@@ -20,7 +20,7 @@
// Paper start - Expand PlayerGameModeChangeEvent
this.loadGameTypes(input);
}
@@ -556,6 +_,9 @@
@@ -557,6 +_,9 @@
output.store("ShoulderEntityRight", CompoundTag.CODEC, this.getShoulderEntityRight());
}
this.getBukkitEntity().setExtraData(output); // CraftBukkit
@@ -30,7 +30,7 @@
}
private void saveParentVehicle(ValueOutput output) {
@@ -1185,6 +_,7 @@
@@ -1186,6 +_,7 @@
// Paper - moved up to sendClientboundPlayerCombatKillPacket()
sendClientboundPlayerCombatKillPacket(event.getShowDeathMessages(), deathScreenMessage); // Paper - Expand PlayerDeathEvent
Team team = this.getTeam();
@@ -38,7 +38,7 @@
if (team == null || team.getDeathMessageVisibility() == Team.Visibility.ALWAYS) {
this.server.getPlayerList().broadcastSystemMessage(deathMessage, false);
} else if (team.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) {
@@ -1292,6 +_,13 @@
@@ -1293,6 +_,13 @@
if (this.isInvulnerableTo(level, damageSource)) {
return false;
} else {
@@ -52,7 +52,7 @@
Entity entity = damageSource.getEntity();
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
!(entity instanceof Player player && !this.canHarmPlayer(player))
@@ -1545,6 +_,7 @@
@@ -1546,6 +_,7 @@
profilerFiller.pop();
profilerFiller.push("placing");
@@ -60,7 +60,7 @@
this.setServerLevel(level);
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
this.connection.resetPosition();
@@ -1646,7 +_,7 @@
@@ -1647,7 +_,7 @@
new AABB(vec3.x() - 8.0, vec3.y() - 5.0, vec3.z() - 8.0, vec3.x() + 8.0, vec3.y() + 5.0, vec3.z() + 8.0),
monster -> monster.isPreventingPlayerRest(this.level(), this)
);
@@ -69,7 +69,7 @@
return Either.left(Player.BedSleepingProblem.NOT_SAFE);
}
}
@@ -1683,7 +_,19 @@
@@ -1684,7 +_,19 @@
CriteriaTriggers.SLEPT_IN_BED.trigger(this);
});
if (!this.level().canSleepThroughNights()) {
@@ -90,7 +90,7 @@
}
this.level().updateSleepingPlayerList();
@@ -1775,6 +_,7 @@
@@ -1776,6 +_,7 @@
@Override
public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) {
@@ -98,7 +98,7 @@
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText));
}
@@ -2084,6 +_,26 @@
@@ -2085,6 +_,26 @@
this.lastSentExp = -1; // CraftBukkit - Added to reset
}
@@ -125,7 +125,7 @@
@Override
public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay);
@@ -2318,6 +_,20 @@
@@ -2319,6 +_,20 @@
);
}
@@ -146,7 +146,7 @@
public void sendSystemMessage(Component message) {
this.sendSystemMessage(message, false);
}
@@ -2456,7 +_,67 @@
@@ -2457,7 +_,67 @@
public void resetLastActionTime() {
this.lastActionTime = Util.getMillis();
@@ -215,7 +215,7 @@
public ServerStatsCounter getStats() {
return this.stats;
@@ -3097,4 +_,65 @@
@@ -3098,4 +_,65 @@
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -340,6 +_,20 @@
@@ -341,6 +_,20 @@
}
// Paper end - configuration phase API
@@ -21,7 +21,7 @@
@Override
public void tick() {
if (this.ackBlockChangesUpTo > -1) {
@@ -357,6 +_,12 @@
@@ -358,6 +_,12 @@
&& this.server.playerIdleTimeout() > 0
&& Util.getMillis() - this.player.getLastActionTime() > TimeUnit.MINUTES.toMillis(this.server.playerIdleTimeout())
&& !this.player.wonGame) {
@@ -34,7 +34,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
}
}
@@ -671,6 +_,8 @@
@@ -672,6 +_,8 @@
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -43,7 +43,7 @@
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -750,6 +_,7 @@
@@ -751,6 +_,7 @@
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
@@ -51,7 +51,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
return;
}
@@ -1283,6 +_,10 @@
@@ -1284,6 +_,10 @@
final int maxBookPageSize = pageMax.intValue();
final double multiplier = Math.clamp(io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier, 0.3D, 1D);
long byteAllowed = maxBookPageSize;
@@ -62,7 +62,7 @@
for (final String page : pageList) {
final int byteLength = page.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
byteTotal += byteLength;
@@ -1307,7 +_,8 @@
@@ -1308,7 +_,8 @@
}
if (byteTotal > byteAllowed) {
@@ -72,7 +72,7 @@
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
return;
}
@@ -1326,31 +_,45 @@
@@ -1327,31 +_,45 @@
Optional<String> optional = packet.title();
optional.ifPresent(list::add);
list.addAll(packet.pages());
@@ -122,7 +122,7 @@
itemStack.set(
DataComponents.WRITTEN_BOOK_CONTENT, new WrittenBookContent(this.filterableFromOutgoing(title), this.player.getPlainTextName(), 0, list, true)
);
@@ -1363,6 +_,16 @@
@@ -1364,6 +_,16 @@
return this.player.isTextFilteringEnabled() ? Filterable.passThrough(filteredText.filteredOrEmpty()) : Filterable.from(filteredText);
}
@@ -139,7 +139,7 @@
@Override
public void handleEntityTagQuery(ServerboundEntityTagQueryPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -1402,7 +_,15 @@
@@ -1403,7 +_,15 @@
@Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());
@@ -156,7 +156,7 @@
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
} else {
ServerLevel serverLevel = this.player.level();
@@ -1584,7 +_,7 @@
@@ -1585,7 +_,7 @@
movedWrongly = true;
if (event.getLogWarning())
// Paper end
@@ -165,7 +165,7 @@
} // Paper
}
@@ -1649,6 +_,8 @@
@@ -1650,6 +_,8 @@
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -174,7 +174,7 @@
Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event);
@@ -1704,6 +_,13 @@
@@ -1705,6 +_,13 @@
this.player.tryResetCurrentImpulseContext();
}
@@ -188,7 +188,7 @@
this.player.checkMovementStatistics(this.player.getX() - x, this.player.getY() - y, this.player.getZ() - z);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1721,6 +_,17 @@
@@ -1722,6 +_,17 @@
}
}
@@ -206,7 +206,7 @@
private boolean shouldCheckPlayerMovement(boolean isElytraMovement) {
if (this.isSingleplayerOwner()) {
return false;
@@ -2120,6 +_,7 @@
@@ -2121,6 +_,7 @@
boolean cancelled;
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
@@ -214,7 +214,7 @@
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
cancelled = event.useItemInHand() == Event.Result.DENY;
} else {
@@ -2767,6 +_,7 @@
@@ -2768,6 +_,7 @@
AABB boundingBox = target.getBoundingBox();
if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
@@ -222,7 +222,7 @@
packet.dispatch(
new ServerboundInteractPacket.Handler() {
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
@@ -3508,7 +_,7 @@
@@ -3509,7 +_,7 @@
@Override
public void handleChangeGameMode(ServerboundChangeGameModePacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level());

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -304,6 +_,7 @@
@@ -305,6 +_,7 @@
scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam);
}
// Paper end - Configurable player collision
@@ -8,7 +8,7 @@
// CraftBukkit start - moved down
LOGGER.info(
"{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", // CraftBukkit - add world name
@@ -424,6 +_,7 @@
@@ -425,6 +_,7 @@
}
public @Nullable net.kyori.adventure.text.Component remove(ServerPlayer player, net.kyori.adventure.text.Component leaveMessage) {
// Paper end - Fix kick event leave message not being sent
@@ -16,7 +16,7 @@
ServerLevel serverLevel = player.level();
player.awardStat(Stats.LEAVE_GAME);
// CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
@@ -763,6 +_,20 @@
@@ -764,6 +_,20 @@
}
}
@@ -37,15 +37,23 @@
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
for (ServerPlayer serverPlayer : this.players) {
if (serverPlayer.level().dimension() == dimension) {
@@ -857,6 +_,7 @@
@@ -852,12 +_,13 @@
if (player.connection != null) {
byte b;
if (permLevel <= 0) {
- b = 24;
+ b = EntityEvent.PERMISSION_LEVEL_ALL; // Purpur - Constants
} else if (permLevel >= 4) {
- b = 28;
+ b = EntityEvent.PERMISSION_LEVEL_OWNERS; // Purpur - Constants
} else {
b = (byte)(24 + permLevel);
b = (byte)(EntityEvent.PERMISSION_LEVEL_ALL + permLevel);
}
+ if (b < 28 && player.getBukkitEntity().hasPermission("purpur.debug.f3n")) b = 28; // Purpur - Add permission for F3+N debug
+ if (b < EntityEvent.PERMISSION_LEVEL_OWNERS && player.getBukkitEntity().hasPermission("purpur.debug.f3n")) b = EntityEvent.PERMISSION_LEVEL_OWNERS; // Purpur - Add permission for F3+N debug
player.connection.send(new ClientboundEntityEventPacket(player, b));
}
@@ -869,7 +_,7 @@
@@ -870,7 +_,7 @@
// Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -446,6 +_,12 @@
@@ -447,6 +_,12 @@
if (d < 0.0) {
double damagePerBlock = serverLevel1.getWorldBorder().getDamagePerBlock();
if (damagePerBlock > 0.0) {
@@ -13,16 +13,16 @@
this.hurtServer(serverLevel1, this.damageSources().outOfBorder(), Math.max(1, Mth.floor(-d * damagePerBlock)));
}
}
@@ -461,7 +_,7 @@
@@ -462,7 +_,7 @@
if (this.shouldTakeDrowningDamage()) {
this.setAirSupply(0);
serverLevel1.broadcastEntityEvent(this, (byte)67);
serverLevel1.broadcastEntityEvent(this, EntityEvent.DROWN_PARTICLES);
- this.hurtServer(serverLevel1, this.damageSources().drown(), 2.0F);
+ this.hurtServer(serverLevel1, this.damageSources().drown(), (float) this.level().purpurConfig.damageFromDrowning); // Purpur - Drowning Settings
}
} else if (this.getAirSupply() < this.getMaxAirSupply()) {
this.setAirSupply(this.increaseAirSupply(this.getAirSupply()));
@@ -521,7 +_,7 @@
@@ -522,7 +_,7 @@
}
protected boolean shouldTakeDrowningDamage() {
@@ -31,7 +31,7 @@
}
@Override
@@ -1045,14 +_,32 @@
@@ -1046,14 +_,32 @@
if (lookingEntity != null) {
ItemStack itemBySlot = this.getItemBySlot(EquipmentSlot.HEAD);
EntityType<?> type = lookingEntity.getType();
@@ -72,7 +72,7 @@
return d;
}
@@ -1099,6 +_,7 @@
@@ -1100,6 +_,7 @@
Iterator<MobEffectInstance> iterator = this.activeEffects.values().iterator();
while (iterator.hasNext()) {
MobEffectInstance effect = iterator.next();
@@ -80,7 +80,7 @@
EntityPotionEffectEvent event = CraftEventFactory.callEntityPotionEffectChangeEvent(this, effect, null, cause, EntityPotionEffectEvent.Action.CLEARED);
if (event.isCancelled()) {
continue;
@@ -1423,6 +_,24 @@
@@ -1424,6 +_,24 @@
this.stopSleeping();
}
@@ -105,7 +105,7 @@
this.noActionTime = 0;
if (amount < 0.0F) {
amount = 0.0F;
@@ -1685,10 +_,10 @@
@@ -1686,10 +_,10 @@
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
Entity entity = damageSource.getEntity();
if (entity instanceof Player player) {
@@ -118,7 +118,7 @@
} else {
this.lastHurtByPlayer = null;
this.lastHurtByPlayerMemoryTime = 0;
@@ -1739,6 +_,18 @@
@@ -1740,6 +_,18 @@
}
}
@@ -137,7 +137,7 @@
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
event.setCancelled(itemStack == null);
@@ -1920,6 +_,7 @@
@@ -1921,6 +_,7 @@
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
this.dropEquipment(level); // CraftBukkit - from below
if (this.shouldDropLoot(level)) {
@@ -145,7 +145,7 @@
this.dropFromLootTable(level, damageSource, flag);
// Paper start
final boolean prev = this.clearEquipmentSlots;
@@ -1928,6 +_,7 @@
@@ -1929,6 +_,7 @@
// Paper end
this.dropCustomDeathLoot(level, damageSource, flag);
this.clearEquipmentSlots = prev; // Paper
@@ -153,7 +153,7 @@
}
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3146,6 +_,7 @@
@@ -3149,6 +_,7 @@
float f = (float)(d * 10.0 - 3.0);
if (f > 0.0F) {
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
@@ -161,7 +161,7 @@
this.hurt(this.damageSources().flyIntoWall(), f);
}
}
@@ -4545,6 +_,12 @@
@@ -4548,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
+++ b/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
@@ -58,7 +_,7 @@
@@ -59,7 +_,7 @@
if (firstPassenger instanceof Player player) {
int temper = this.horse.getTemper();
int maxTemper = this.horse.getMaxTemper();

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -233,7 +_,7 @@
@@ -234,7 +_,7 @@
} else {
int maxLocalRawBrightness = level.getMaxLocalRawBrightness(pos);
int i = 4;
@@ -9,7 +9,7 @@
i = 7;
} else if (randomSource.nextBoolean()) {
return false;
@@ -245,6 +_,7 @@
@@ -246,6 +_,7 @@
}
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Animal.java
+++ b/net/minecraft/world/entity/animal/Animal.java
@@ -141,7 +_,7 @@
@@ -142,7 +_,7 @@
ItemStack itemInHand = player.getItemInHand(hand);
if (this.isFood(itemInHand)) {
int age = this.getAge();
@@ -9,7 +9,7 @@
final ItemStack breedCopy = itemInHand.copy(); // Paper - Fix EntityBreedEvent copying
this.usePlayerItem(player, hand, itemInHand);
this.setInLove(serverPlayer, breedCopy); // Paper - Fix EntityBreedEvent copying
@@ -223,10 +_,20 @@
@@ -224,10 +_,20 @@
public void spawnChildFromBreeding(ServerLevel level, Animal partner) {
AgeableMob breedOffspring = this.getBreedOffspring(level, partner);
if (breedOffspring != null) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -170,7 +_,7 @@
@@ -171,7 +_,7 @@
// Paper end - Fix MC-167279
this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
@@ -9,7 +9,7 @@
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -366,7 +_,7 @@
@@ -367,7 +_,7 @@
}
public static boolean isNightOrRaining(Level level) {
@@ -18,7 +18,7 @@
}
public void setStayOutOfHiveCountdown(int stayOutOfHiveCountdown) {
@@ -389,7 +_,7 @@
@@ -390,7 +_,7 @@
@Override
protected void customServerAiStep(ServerLevel level) {
boolean hasStung = this.hasStung();
@@ -27,7 +27,7 @@
this.underWaterTicks++;
} else {
this.underWaterTicks = 0;
@@ -399,6 +_,7 @@
@@ -400,6 +_,7 @@
this.hurtServer(level, this.damageSources().drown(), 1.0F);
}
@@ -35,7 +35,7 @@
if (hasStung) {
this.timeSinceSting++;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) {
@@ -1138,6 +_,7 @@
@@ -1139,6 +_,7 @@
Bee.this.savedFlowerPos = optional.get();
Bee.this.navigation
.moveTo(Bee.this.savedFlowerPos.getX() + 0.5, Bee.this.savedFlowerPos.getY() + 0.5, Bee.this.savedFlowerPos.getZ() + 0.5, 1.2F);
@@ -43,7 +43,7 @@
return true;
} else {
Bee.this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(Bee.this.random, 20, 60);
@@ -1184,6 +_,7 @@
@@ -1185,6 +_,7 @@
this.pollinating = false;
Bee.this.navigation.stop();
Bee.this.remainingCooldownBeforeLocatingNewFlower = 200;
@@ -51,7 +51,7 @@
}
@Override
@@ -1230,6 +_,7 @@
@@ -1231,6 +_,7 @@
this.setWantedPos();
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -354,6 +_,14 @@
@@ -355,6 +_,14 @@
return this.isTame() && otherAnimal instanceof Cat cat && cat.isTame() && super.canMate(otherAnimal);
}
@@ -15,7 +15,7 @@
@Nullable
@Override
public SpawnGroupData finalizeSpawn(
@@ -452,7 +_,7 @@
@@ -453,7 +_,7 @@
}
private void tryToTame(Player player) {
@@ -23,4 +23,4 @@
+ if (((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(3) == 0) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit // Purpur - Config to always tame in Creative
this.tame(player);
this.setOrderedToSit(true);
this.level().broadcastEntityEvent(this, (byte)7);
this.level().broadcastEntityEvent(this, EntityEvent.TAMING_SUCCEEDED);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -74,6 +_,7 @@
@@ -75,6 +_,7 @@
private static final boolean DEFAULT_GOT_FISH = false;
@Nullable
public BlockPos treasurePos;
@@ -8,7 +8,7 @@
public Dolphin(EntityType<? extends Dolphin> type, Level level) {
super(type, level);
@@ -90,6 +_,7 @@
@@ -91,6 +_,7 @@
this.setAirSupply(this.getMaxAirSupply());
this.setXRot(0.0F);
SpawnGroupData spawnGroupData1 = Objects.requireNonNullElseGet(spawnGroupData, () -> new AgeableMob.AgeableMobGroupData(0.1F));
@@ -16,7 +16,7 @@
return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData1);
}
@@ -156,17 +_,19 @@
@@ -157,17 +_,19 @@
protected void registerGoals() {
this.goalSelector.addGoal(0, new BreathAirGoal(this));
this.goalSelector.addGoal(0, new TryFindWaterGoal(this));
@@ -37,7 +37,7 @@
}
public static AttributeSupplier.Builder createAttributes() {
@@ -399,6 +_,7 @@
@@ -400,6 +_,7 @@
@Override
public boolean canUse() {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -346,6 +_,11 @@
@@ -348,6 +_,11 @@
}
private void setTargetGoals() {
@@ -12,7 +12,7 @@
if (this.getVariant() == Fox.Variant.RED) {
this.targetSelector.addGoal(4, this.landTargetGoal);
this.targetSelector.addGoal(4, this.turtleEggTargetGoal);
@@ -373,6 +_,7 @@
@@ -375,6 +_,7 @@
public void setVariant(Fox.Variant variant) {
this.entityData.set(DATA_TYPE_ID, variant.getId());
@@ -20,7 +20,7 @@
}
@Nullable
@@ -702,6 +_,29 @@
@@ -704,6 +_,29 @@
return slot == EquipmentSlot.MAINHAND;
}
// Paper end

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -58,13 +_,26 @@
@@ -59,13 +_,26 @@
private int remainingPersistentAngerTime;
@Nullable
private UUID persistentAngerTarget;
@@ -27,7 +27,7 @@
this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0, true));
this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9, 32.0F));
this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6, false));
@@ -142,6 +_,7 @@
@@ -143,6 +_,7 @@
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
output.putBoolean("PlayerCreated", this.isPlayerCreated());
@@ -35,7 +35,7 @@
this.addPersistentAngerSaveData(output);
}
@@ -149,6 +_,7 @@
@@ -150,6 +_,7 @@
protected void readAdditionalSaveData(ValueInput input) {
super.readAdditionalSaveData(input);
this.setPlayerCreated(input.getBooleanOr("PlayerCreated", false));
@@ -43,7 +43,7 @@
this.readPersistentAngerSaveData(this.level(), input);
}
@@ -268,6 +_,7 @@
@@ -269,6 +_,7 @@
float f = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F;
this.playSound(SoundEvents.IRON_GOLEM_REPAIR, 1.0F, f);
itemInHand.consume(1, player);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -234,7 +_,7 @@
@@ -235,7 +_,7 @@
public boolean checkSpawnObstruction(LevelReader level) {
if (level.isUnobstructed(this) && !level.containsAnyLiquid(this.getBoundingBox())) {
BlockPos blockPos = this.blockPosition();

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -159,6 +_,7 @@
@@ -160,6 +_,7 @@
protected void registerGoals() {
this.goalSelector.addGoal(0, new TamableAnimal.TamableAnimalPanicGoal(1.25));
this.goalSelector.addGoal(0, new FloatGoal(this));
@@ -8,16 +8,16 @@
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.0, 5.0F, 1.0F));
@@ -264,7 +_,7 @@
@@ -265,7 +_,7 @@
}
if (!this.level().isClientSide()) {
- if (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
+ if (((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(10) == 0) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit // Purpur - Config to always tame in Creative
this.tame(player);
this.level().broadcastEntityEvent(this, (byte)7);
this.level().broadcastEntityEvent(this, EntityEvent.TAMING_SUCCEEDED);
} else {
@@ -272,6 +_,7 @@
@@ -273,6 +_,7 @@
}
}
@@ -25,7 +25,7 @@
return InteractionResult.SUCCESS;
} else if (!itemInHand.is(ItemTags.PARROT_POISONOUS_FOOD)) {
if (!this.isFlying() && this.isTame() && this.isOwnedBy(player)) {
@@ -296,7 +_,7 @@
@@ -297,7 +_,7 @@
@Override
public boolean isFood(ItemStack stack) {
@@ -34,7 +34,7 @@
}
public static boolean checkParrotSpawnRules(
@@ -311,13 +_,13 @@
@@ -312,13 +_,13 @@
@Override
public boolean canMate(Animal otherAnimal) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -404,10 +_,23 @@
@@ -406,10 +_,23 @@
}
this.setVariant(randomRabbitVariant);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -46,10 +_,29 @@
@@ -47,10 +_,29 @@
public Squid(EntityType<? extends Squid> type, Level level) {
super(type, level);
@@ -31,7 +31,7 @@
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
@@ -127,6 +_,7 @@
@@ -128,6 +_,7 @@
}
if (this.isInWater()) {
@@ -39,7 +39,7 @@
if (this.tentacleMovement < (float) Math.PI) {
float f = this.tentacleMovement / (float) Math.PI;
this.tentacleAngle = Mth.sin(f * f * (float) Math.PI) * (float) Math.PI * 0.25F;
@@ -308,7 +_,7 @@
@@ -309,7 +_,7 @@
int noActionTime = this.squid.getNoActionTime();
if (noActionTime > 100) {
this.squid.movementVector = Vec3.ZERO;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -84,6 +_,7 @@
@@ -86,6 +_,7 @@
private final AnimationState interactionDropItemAnimationState = new AnimationState();
private final AnimationState interactionDropNoItemAnimationState = new AnimationState();
public static final EquipmentSlot EQUIPMENT_SLOT_ANTENNA = EquipmentSlot.SADDLE;
@@ -8,7 +8,7 @@
public CopperGolem(EntityType<? extends AbstractGolem> type, Level level) {
super(type, level);
@@ -97,6 +_,17 @@
@@ -99,6 +_,17 @@
this.getBrain().setMemory(MemoryModuleType.TRANSPORT_ITEMS_COOLDOWN_TICKS, this.getRandom().nextInt(60, 100));
}
@@ -26,7 +26,7 @@
public static AttributeSupplier.Builder createAttributes() {
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
@@ -172,6 +_,7 @@
@@ -174,6 +_,7 @@
super.addAdditionalSaveData(output);
output.putLong("next_weather_age", this.nextWeatheringTick);
output.store("weather_state", WeatheringCopper.WeatherState.CODEC, this.getWeatherState());
@@ -34,7 +34,7 @@
}
@Override
@@ -179,6 +_,7 @@
@@ -181,6 +_,7 @@
super.readAdditionalSaveData(input);
this.nextWeatheringTick = input.getLongOr("next_weather_age", -1L);
this.setWeatherState(input.read("weather_state", WeatheringCopper.WeatherState.CODEC).orElse(WeatheringCopper.WeatherState.UNAFFECTED));

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -389,6 +_,7 @@
@@ -390,6 +_,7 @@
// Paper start - Goat ram API
public void ram(net.minecraft.world.entity.LivingEntity entity) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -99,6 +_,37 @@
@@ -100,6 +_,37 @@
EntityType<?> type = entity.getType();
return type == EntityType.SHEEP || type == EntityType.RABBIT || type == EntityType.FOX;
};
@@ -38,7 +38,7 @@
private static final float START_HEALTH = 8.0F;
private static final float TAME_HEALTH = 40.0F;
private static final float ARMOR_REPAIR_UNIT = 0.125F;
@@ -121,12 +_,47 @@
@@ -122,12 +_,47 @@
this.setPathfindingMalus(PathType.DANGER_POWDER_SNOW, -1.0F);
}
@@ -86,7 +86,7 @@
this.goalSelector.addGoal(4, new LeapAtTargetGoal(this, 0.4F));
this.goalSelector.addGoal(5, new MeleeAttackGoal(this, 1.0, true));
this.goalSelector.addGoal(6, new FollowOwnerGoal(this, 1.0, 10.0F, 2.0F));
@@ -139,7 +_,7 @@
@@ -140,7 +_,7 @@
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers());
this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt));
@@ -95,7 +95,7 @@
this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR));
this.targetSelector.addGoal(7, new NearestAttackableTargetGoal<>(this, AbstractSkeleton.class, false));
this.targetSelector.addGoal(8, new ResetUniversalAngerTargetGoal<>(this, true));
@@ -230,6 +_,7 @@
@@ -231,6 +_,7 @@
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
output.store("CollarColor", DyeColor.LEGACY_ID_CODEC, this.getCollarColor());
@@ -103,7 +103,7 @@
VariantUtils.writeVariant(output, this.getVariant());
this.addPersistentAngerSaveData(output);
this.getSoundVariant()
@@ -244,6 +_,10 @@
@@ -245,6 +_,10 @@
super.readAdditionalSaveData(input);
VariantUtils.readVariant(input, Registries.WOLF_VARIANT).ifPresent(this::setVariant);
this.setCollarColor(input.read("CollarColor", DyeColor.LEGACY_ID_CODEC).orElse(DEFAULT_COLLAR_COLOR));
@@ -114,7 +114,7 @@
this.readPersistentAngerSaveData(this.level(), input);
input.read("sound_variant", ResourceKey.codec(Registries.WOLF_SOUND_VARIANT))
.flatMap(resourceKey -> this.registryAccess().lookupOrThrow(Registries.WOLF_SOUND_VARIANT).get((ResourceKey<WolfSoundVariant>)resourceKey))
@@ -268,6 +_,10 @@
@@ -269,6 +_,10 @@
}
this.setSoundVariant(WolfSoundVariants.pickRandomSoundVariant(this.registryAccess(), level.getRandom()));
@@ -125,7 +125,7 @@
return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData);
}
@@ -318,6 +_,11 @@
@@ -319,6 +_,11 @@
public void tick() {
super.tick();
if (this.isAlive()) {
@@ -137,7 +137,7 @@
this.interestedAngleO = this.interestedAngle;
if (this.isInterested()) {
this.interestedAngle = this.interestedAngle + (1.0F - this.interestedAngle) * 0.4F;
@@ -519,13 +_,27 @@
@@ -520,13 +_,27 @@
itemInHand.consume(1, player);
this.tryToTame(player);
return InteractionResult.SUCCESS_SERVER;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -961,6 +_,7 @@
@@ -962,6 +_,7 @@
@Override
protected boolean canRide(Entity entity) {
@@ -8,7 +8,7 @@
return false;
}
@@ -996,7 +_,7 @@
@@ -997,7 +_,7 @@
boolean flag = level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT);
int i = 500;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -79,6 +_,7 @@
@@ -80,6 +_,7 @@
private static final TargetingConditions.Selector LIVING_ENTITY_SELECTOR = (entity, level) -> !entity.getType().is(EntityTypeTags.WITHER_FRIENDS)
&& entity.attackable();
private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0).selector(LIVING_ENTITY_SELECTOR);
@@ -8,7 +8,7 @@
public WitherBoss(EntityType<? extends WitherBoss> type, Level level) {
super(type, level);
@@ -87,6 +_,17 @@
@@ -88,6 +_,17 @@
this.xpReward = 50;
}
@@ -26,7 +26,7 @@
@Override
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
@@ -119,6 +_,7 @@
@@ -120,6 +_,7 @@
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
output.putInt("Invul", this.getInvulnerableTicks());
@@ -34,7 +34,7 @@
}
@Override
@@ -128,6 +_,7 @@
@@ -129,6 +_,7 @@
if (this.hasCustomName()) {
this.bossEvent.setName(this.getDisplayName());
}
@@ -42,7 +42,7 @@
}
@Override
@@ -271,7 +_,7 @@
@@ -272,7 +_,7 @@
level.explode(this, this.getX(), this.getEyeY(), this.getZ(), event.getRadius(), event.getFire(), Level.ExplosionInteraction.MOB);
}
// CraftBukkit end
@@ -51,7 +51,7 @@
// CraftBukkit start - Use relative location for far away sounds
// level.globalLevelEvent(1023, this.blockPosition(), 0);
int viewDistance = level.getCraftServer().getViewDistance() * 16;
@@ -378,8 +_,10 @@
@@ -379,8 +_,10 @@
}
}
@@ -64,7 +64,7 @@
}
this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth());
@@ -576,6 +_,7 @@
@@ -577,6 +_,7 @@
@Override
protected boolean canRide(Entity entity) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -91,10 +_,13 @@
@@ -92,10 +_,13 @@
public boolean canTickSetByAPI = false;
private boolean noTickEquipmentDirty = false;
// Paper end - Allow ArmorStands not to tick
@@ -14,7 +14,7 @@
}
public ArmorStand(Level level, double x, double y, double z) {
@@ -521,6 +_,7 @@
@@ -522,6 +_,7 @@
// Paper start - Allow ArmorStands not to tick
@Override
public void tick() {
@@ -22,7 +22,7 @@
if (!this.canTick) {
if (this.noTickEquipmentDirty) {
this.noTickEquipmentDirty = false;
@@ -811,4 +_,18 @@
@@ -812,4 +_,18 @@
}
}
// Paper end

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -155,6 +_,11 @@
@@ -156,6 +_,11 @@
public static boolean checkGhastSpawnRules(
EntityType<Ghast> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -314,6 +_,11 @@
@@ -315,6 +_,11 @@
public static boolean checkGuardianSpawnRules(
EntityType<? extends Guardian> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -169,7 +_,11 @@
@@ -170,7 +_,11 @@
ServerLevelAccessor level, DifficultyInstance difficulty, EntitySpawnReason spawnReason, @Nullable SpawnGroupData spawnGroupData
) {
this.anchorPoint = this.blockPosition().above(5);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -74,6 +_,7 @@
@@ -75,6 +_,7 @@
protected void registerGoals() {
super.registerGoals();
this.goalSelector.addGoal(0, new FloatGoal(this));
@@ -8,7 +8,7 @@
this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.0, true));
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 0.4));
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
@@ -154,7 +_,7 @@
@@ -155,7 +_,7 @@
)) {
BlockState blockState = serverLevel.getBlockState(blockPos);
Block block = blockState.getBlock();

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -129,4 +_,64 @@
@@ -130,4 +_,64 @@
SoundEvent getStepSound() {
return SoundEvents.SKELETON_STEP;
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -116,7 +_,19 @@
@@ -117,7 +_,19 @@
this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0));
this.targetSelector.addGoal(1, new HurtByTargetGoal(this).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
@@ -21,7 +21,7 @@
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true));
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
}
@@ -550,10 +_,7 @@
@@ -551,10 +_,7 @@
}
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -138,10 +_,10 @@
@@ -140,10 +_,10 @@
public InteractionResult mobInteract(Player player, InteractionHand hand) {
ItemStack itemInHand = player.getItemInHand(hand);
if (itemInHand.is(Items.GOLDEN_APPLE)) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -200,6 +_,11 @@
@@ -201,6 +_,11 @@
public static boolean checkHoglinSpawnRules(
EntityType<Hoglin> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -178,6 +_,8 @@
@@ -179,6 +_,8 @@
MemoryModuleType.MEETING_POINT,
(villager, poiType) -> poiType.is(PoiTypes.MEETING)
);
@@ -9,7 +9,7 @@
public Villager(EntityType<? extends Villager> type, Level level) {
this(type, level, VillagerType.PLAINS);
@@ -196,6 +_,57 @@
@@ -197,6 +_,57 @@
this.setVillagerData(this.getVillagerData().withType(villagerType).withProfession(level.registryAccess(), VillagerProfession.NONE));
}
@@ -67,7 +67,7 @@
@Override
public Brain<Villager> getBrain() {
return (Brain<Villager>)super.getBrain();
@@ -292,11 +_,22 @@
@@ -293,11 +_,22 @@
// Paper start - EAR 2
this.customServerAiStep(level, false);
}
@@ -92,7 +92,7 @@
profilerFiller.pop();
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
@@ -368,6 +_,7 @@
@@ -369,6 +_,7 @@
return InteractionResult.CONSUME;
}
@@ -100,7 +100,7 @@
this.startTrading(player);
}
@@ -504,7 +_,7 @@
@@ -505,7 +_,7 @@
public void updateDemand() {
for (MerchantOffer merchantOffer : this.getOffers()) {
@@ -109,7 +109,7 @@
}
}
@@ -697,7 +_,7 @@
@@ -698,7 +_,7 @@
@Override
public boolean canBreed() {
@@ -118,7 +118,7 @@
}
private boolean hungry() {
@@ -922,6 +_,7 @@
@@ -923,6 +_,7 @@
}
public void spawnGolemIfNeeded(ServerLevel level, long gameTime, int minVillagerAmount) {
@@ -126,7 +126,7 @@
if (this.wantsToSpawnGolem(gameTime)) {
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
List<Villager> entitiesOfClass = level.getEntitiesOfClass(Villager.class, aabb);
@@ -989,6 +_,12 @@
@@ -990,6 +_,12 @@
@Override
public void startSleeping(BlockPos pos) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -180,11 +_,20 @@
@@ -181,11 +_,20 @@
private int currentImpulseContextResetGraceTime = 0;
public boolean affectsSpawning = true; // Paper - Affects Spawning API
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
@@ -21,7 +21,7 @@
@Override
public org.bukkit.craftbukkit.entity.CraftHumanEntity getBukkitEntity() {
return (org.bukkit.craftbukkit.entity.CraftHumanEntity) super.getBukkitEntity();
@@ -246,6 +_,12 @@
@@ -247,6 +_,12 @@
@Override
public void tick() {
@@ -34,7 +34,7 @@
this.noPhysics = this.isSpectator();
if (this.isSpectator() || this.isPassenger()) {
this.setOnGround(false);
@@ -301,6 +_,17 @@
@@ -302,6 +_,17 @@
this.turtleHelmetTick();
}
@@ -52,7 +52,7 @@
this.cooldowns.tick();
this.updatePlayerPose();
if (this.currentImpulseContextResetGraceTime > 0) {
@@ -512,7 +_,7 @@
@@ -513,7 +_,7 @@
List<Entity> list = Lists.newArrayList();
for (Entity entity : entities) {
@@ -61,7 +61,7 @@
list.add(entity);
} else if (!entity.isRemoved()) {
this.touch(entity);
@@ -1074,7 +_,7 @@
@@ -1075,7 +_,7 @@
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
if (flag2) {
damageSource = damageSource.critical(); // Paper - critical damage API
@@ -70,7 +70,7 @@
}
float f2 = f + f1;
@@ -1674,7 +_,23 @@
@@ -1675,7 +_,23 @@
@Override
protected int getBaseExperienceReward(ServerLevel level) {
@@ -95,7 +95,7 @@
}
@Override
@@ -1717,6 +_,13 @@
@@ -1718,6 +_,13 @@
public boolean addItem(ItemStack stack) {
return this.inventory.add(stack);
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/Snowball.java
+++ b/net/minecraft/world/entity/projectile/Snowball.java
@@ -52,9 +_,39 @@
@@ -53,9 +_,39 @@
protected void onHitEntity(EntityHitResult result) {
super.onHitEntity(result);
Entity entity = result.getEntity();

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/inventory/AnvilMenu.java
+++ b/net/minecraft/world/inventory/AnvilMenu.java
@@ -21,6 +_,12 @@
@@ -23,6 +_,12 @@
import net.minecraft.world.level.block.state.BlockState;
import org.slf4j.Logger;
@@ -13,7 +13,7 @@
public class AnvilMenu extends ItemCombinerMenu {
public static final int INPUT_SLOT = 0;
public static final int ADDITIONAL_SLOT = 1;
@@ -50,6 +_,10 @@
@@ -52,6 +_,10 @@
private org.bukkit.craftbukkit.inventory.view.CraftAnvilView bukkitEntity;
// CraftBukkit end
public boolean bypassEnchantmentLevelRestriction = false; // Paper - bypass anvil level restrictions
@@ -24,7 +24,7 @@
public AnvilMenu(int containerId, Inventory playerInventory) {
this(containerId, playerInventory, ContainerLevelAccess.NULL);
@@ -75,12 +_,17 @@
@@ -77,12 +_,17 @@
@Override
protected boolean mayPickup(Player player, boolean hasStack) {
@@ -43,7 +43,7 @@
player.giveExperienceLevels(-this.cost.get());
}
@@ -133,13 +_,19 @@
@@ -135,13 +_,19 @@
@Override
public void createResult() {
@@ -64,7 +64,7 @@
ItemStack itemStack = item.copy();
ItemStack item1 = this.inputSlots.getItem(1);
ItemEnchantments.Mutable mutable = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemStack));
@@ -197,23 +_,34 @@
@@ -199,23 +_,34 @@
int intValue = entry.getIntValue();
intValue = level == intValue ? intValue + 1 : Math.max(intValue, level);
Enchantment enchantment = holder.value();
@@ -103,7 +103,7 @@
intValue = enchantment.getMaxLevel();
}
@@ -242,6 +_,54 @@
@@ -244,6 +_,54 @@
if (!this.itemName.equals(item.getHoverName().getString())) {
i1 = 1;
i += i1;
@@ -158,7 +158,7 @@
itemStack.set(DataComponents.CUSTOM_NAME, Component.literal(this.itemName));
}
} else if (item.has(DataComponents.CUSTOM_NAME)) {
@@ -266,6 +_,12 @@
@@ -268,6 +_,12 @@
this.onlyRenaming = true;
}
@@ -171,7 +171,7 @@
if (this.cost.get() >= this.maximumRepairCost && !this.player.hasInfiniteMaterials()) { // CraftBukkit
itemStack = ItemStack.EMPTY;
}
@@ -286,6 +_,13 @@
@@ -288,6 +_,13 @@
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), itemStack); // CraftBukkit
this.broadcastChanges();
@@ -185,7 +185,7 @@
} else {
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), ItemStack.EMPTY); // CraftBukkit
this.cost.set(AnvilMenu.DEFAULT_DENIED_COST); // CraftBukkit - use a variable for set a cost for denied item
@@ -294,7 +_,7 @@
@@ -296,7 +_,7 @@
}
public static int calculateIncreasedRepairCost(int oldRepairCost) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/inventory/GrindstoneMenu.java
+++ b/net/minecraft/world/inventory/GrindstoneMenu.java
@@ -91,11 +_,13 @@
@@ -92,11 +_,13 @@
@Override
public void onTake(Player player, ItemStack stack) {
access.execute((level, blockPos) -> {
@@ -15,7 +15,7 @@
// Paper end - Fire BlockExpEvent on grindstone use
}
@@ -124,7 +_,7 @@
@@ -125,7 +_,7 @@
for (Entry<Holder<Enchantment>> entry : enchantmentsForCrafting.entrySet()) {
Holder<Enchantment> holder = entry.getKey();
int intValue = entry.getIntValue();
@@ -24,7 +24,7 @@
i += holder.value().getMinCost(intValue);
}
}
@@ -202,15 +_,75 @@
@@ -203,15 +_,75 @@
for (Entry<Holder<Enchantment>> entry : enchantmentsForCrafting.entrySet()) {
Holder<Enchantment> holder = entry.getKey();
@@ -102,7 +102,7 @@
if (item.is(Items.ENCHANTED_BOOK) && itemEnchantments.isEmpty()) {
item = item.transmuteCopy(Items.BOOK);
}
@@ -222,6 +_,23 @@
@@ -223,6 +_,23 @@
}
item.set(DataComponents.REPAIR_COST, i);
@@ -126,7 +126,7 @@
return item;
}
@@ -278,7 +_,9 @@
@@ -279,7 +_,9 @@
return ItemStack.EMPTY;
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/AxeItem.java
+++ b/net/minecraft/world/item/AxeItem.java
@@ -64,13 +_,15 @@
@@ -65,13 +_,15 @@
if (playerHasBlockingItemUseIntent(context)) {
return InteractionResult.PASS;
} else {
@@ -18,14 +18,14 @@
return InteractionResult.PASS;
}
// Paper end
@@ -78,8 +_,15 @@
@@ -79,8 +_,15 @@
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger((ServerPlayer)player, clickedPos, itemInHand);
}
- level.setBlock(clickedPos, optional.get(), 11);
- level.setBlock(clickedPos, optional.get(), Block.UPDATE_ALL_IMMEDIATE);
- level.gameEvent(GameEvent.BLOCK_CHANGE, clickedPos, GameEvent.Context.of(player, optional.get()));
+ // Purpur start - Tool actionable options
+ level.setBlock(clickedPos, state, 11);
+ level.setBlock(clickedPos, state, Block.UPDATE_ALL_IMMEDIATE);
+ actionable.drops().forEach((drop, chance) -> {
+ if (level.random.nextDouble() < chance) {
+ Block.popResourceFromFace(level, clickedPos, context.getClickedFace(), new ItemStack(drop));
@@ -36,7 +36,7 @@
if (player != null) {
itemInHand.hurtAndBreak(1, player, context.getHand().asEquipmentSlot());
}
@@ -96,21 +_,23 @@
@@ -97,21 +_,23 @@
&& !player.isSecondaryUseActive();
}
@@ -52,8 +52,8 @@
- Optional<BlockState> previous = WeatheringCopper.getPrevious(state);
+ Optional<org.purpurmc.purpur.tool.Actionable> previous = Optional.ofNullable(level.purpurConfig.axeWeatherables.get(state.getBlock())); // Purpur - Tool actionable options
if (previous.isPresent()) {
- spawnSoundAndParticle(level, pos, player, state, SoundEvents.AXE_SCRAPE, 3005);
+ spawnSoundAndParticle(level, pos, WeatheringCopper.getPrevious(state).isPresent() ? player : null, state, SoundEvents.AXE_SCRAPE, 3005); // Purpur - Tool actionable options - force sound
- spawnSoundAndParticle(level, pos, player, state, SoundEvents.AXE_SCRAPE, LevelEvent.PARTICLES_SCRAPE);
+ spawnSoundAndParticle(level, pos, WeatheringCopper.getPrevious(state).isPresent() ? player : null, state, SoundEvents.AXE_SCRAPE, LevelEvent.PARTICLES_SCRAPE); // Purpur - Tool actionable options - force sound
return previous;
} else {
- Optional<BlockState> optional = Optional.ofNullable(HoneycombItem.WAX_OFF_BY_BLOCK.get().get(state.getBlock()))
@@ -63,8 +63,8 @@
+ // .map(block -> block.withPropertiesOf(state));
+ // Purpur end - Tool actionable options
if (optional.isPresent()) {
- spawnSoundAndParticle(level, pos, player, state, SoundEvents.AXE_WAX_OFF, 3004);
+ spawnSoundAndParticle(level, pos, HoneycombItem.WAX_OFF_BY_BLOCK.get().containsKey(state.getBlock()) ? player : null, state, SoundEvents.AXE_WAX_OFF, 3004); // Purpur - Tool actionable options - force sound
- spawnSoundAndParticle(level, pos, player, state, SoundEvents.AXE_WAX_OFF, LevelEvent.PARTICLES_WAX_OFF);
+ spawnSoundAndParticle(level, pos, HoneycombItem.WAX_OFF_BY_BLOCK.get().containsKey(state.getBlock()) ? player : null, state, SoundEvents.AXE_WAX_OFF, LevelEvent.PARTICLES_WAX_OFF); // Purpur - Tool actionable options - force sound
return optional;
} else {
return Optional.empty();

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/ShovelItem.java
+++ b/net/minecraft/world/item/ShovelItem.java
@@ -45,9 +_,12 @@
@@ -46,9 +_,12 @@
BlockState blockState1 = FLATTENABLES.get(blockState.getBlock());
BlockState blockState2 = null;
Runnable afterAction = null; // Paper

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/item/SpawnEggItem.java
+++ b/net/minecraft/world/item/SpawnEggItem.java
@@ -68,6 +_,23 @@
@@ -69,6 +_,23 @@
return InteractionResult.FAIL;
} else {
if (level.paperConfig().entities.spawning.disableMobSpawnerSpawnEggTransformation) return InteractionResult.FAIL; // Paper - Allow disabling mob spawner spawn egg transformation
@@ -22,5 +22,5 @@
+ }
+ // Purpur end - PlayerSetSpawnerTypeWithEggEvent
spawner.setEntityId(type, level.getRandom());
level.sendBlockUpdated(clickedPos, blockState, blockState, 3);
level.sendBlockUpdated(clickedPos, blockState, blockState, Block.UPDATE_ALL);
level.gameEvent(context.getPlayer(), GameEvent.BLOCK_CHANGE, clickedPos);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/BaseSpawner.java
+++ b/net/minecraft/world/level/BaseSpawner.java
@@ -61,6 +_,7 @@
@@ -62,6 +_,7 @@
}
public boolean isNearPlayer(Level level, BlockPos pos) {

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -165,11 +_,55 @@
@@ -166,11 +_,55 @@
}
// Paper end - add paper world config
@@ -56,7 +56,7 @@
public CraftWorld getWorld() {
return this.world;
}
@@ -845,6 +_,8 @@
@@ -846,6 +_,8 @@
// Paper end - getblock optimisations - cache world height/sections
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -65,7 +65,7 @@
this.generator = generator;
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
@@ -2112,4 +_,14 @@
@@ -2113,4 +_,14 @@
return this.id;
}
}

View File

@@ -2,7 +2,7 @@
+++ b/net/minecraft/world/level/block/CaveVinesBlock.java
@@ -92,4 +_,11 @@
public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) {
level.setBlock(pos, state.setValue(BERRIES, true), 2);
level.setBlock(pos, state.setValue(BERRIES, true), Block.UPDATE_CLIENTS);
}
+
+ // Purpur start - cave vines configurable max growth age

View File

@@ -11,7 +11,7 @@
- return InteractionResult.PASS;
- }
- // Paper end
- level.levelEvent(1500, pos, state != blockState ? 1 : 0);
- level.levelEvent(LevelEvent.COMPOSTER_FILL, pos, state != blockState ? 1 : 0);
- player.awardStat(Stats.ITEM_USED.get(stack.getItem()));
- stack.consume(1, player);
- }
@@ -46,17 +46,17 @@
+ // Purpur start - sneak to bulk process composter
+ private static @Nullable BlockState process(int levelValue, Player player, BlockState state, Level level, BlockPos pos, ItemStack stack) {
+ if (levelValue < 7 && !level.isClientSide()) {
+ BlockState iblockdata1 = ComposterBlock.addItem(player, state, level, pos, stack);
+ BlockState blockState = ComposterBlock.addItem(player, state, level, pos, stack);
+ // Paper start - handle cancelled events
+ if (iblockdata1 == null) {
+ if (blockState == null) {
+ return null;
+ }
+ // Paper end
+
+ level.levelEvent(1500, pos, state != iblockdata1 ? 1 : 0);
+ level.levelEvent(LevelEvent.COMPOSTER_FILL, pos, state != blockState ? 1 : 0);
+ player.awardStat(Stats.ITEM_USED.get(stack.getItem()));
+ stack.consume(1, player);
+ return iblockdata1;
+ return blockState;
+ }
+ return state;
+ }

View File

@@ -7,7 +7,7 @@
+ } else if (requiresRedstone(level, state, pos)) { return InteractionResult.CONSUME; // Purpur - Option to make doors require redstone
} else {
state = state.cycle(OPEN);
level.setBlock(pos, state, 10);
level.setBlock(pos, state, Block.UPDATE_CLIENTS | Block.UPDATE_IMMEDIATE);
@@ -287,4 +_,18 @@
public static boolean isWoodenDoor(BlockState state) {
return state.getBlock() instanceof DoorBlock doorBlock && doorBlock.type().canOpenByHand();
@@ -19,8 +19,8 @@
+ // force update client
+ BlockPos otherPos = pos.relative(state.getValue(DoorBlock.HALF) == DoubleBlockHalf.LOWER ? Direction.UP : Direction.DOWN);
+ BlockState otherState = level.getBlockState(otherPos);
+ level.sendBlockUpdated(pos, state, state, 3);
+ level.sendBlockUpdated(otherPos, otherState, otherState, 3);
+ level.sendBlockUpdated(pos, state, state, Block.UPDATE_ALL);
+ level.sendBlockUpdated(otherPos, otherState, otherState, Block.UPDATE_ALL);
+ return true;
+ }
+ return false;

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -186,6 +_,21 @@
@@ -187,6 +_,21 @@
}
ItemStack itemStack = furnace.items.get(1);
@@ -22,7 +22,7 @@
ItemStack itemStack1 = furnace.items.get(0);
boolean flag1 = !itemStack1.isEmpty();
boolean flag2 = !itemStack.isEmpty();
@@ -269,6 +_,8 @@
@@ -270,6 +_,8 @@
if (flag) {
setChanged(level, pos, state);
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/entity/SignBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/SignBlockEntity.java
@@ -148,16 +_,32 @@
@@ -149,16 +_,32 @@
return this.setText(updater.apply(text), isFrontText);
}
@@ -35,7 +35,7 @@
);
}
}
@@ -306,6 +_,27 @@
@@ -307,6 +_,27 @@
// CraftBukkit - this
return new CommandSourceStack(commandSource, Vec3.atCenterOf(pos), Vec2.ZERO, level, 2, string, component, level.getServer(), player); // Paper - Fix commands from signs not firing command events
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/material/LavaFluid.java
+++ b/net/minecraft/world/level/material/LavaFluid.java
@@ -190,7 +_,7 @@
@@ -192,7 +_,7 @@
@Override
public int getTickDelay(LevelReader level) {
@@ -9,9 +9,9 @@
}
@Override
@@ -211,6 +_,13 @@
@@ -213,6 +_,13 @@
private void fizz(LevelAccessor level, BlockPos pos) {
level.levelEvent(1501, pos, 0);
level.levelEvent(LevelEvent.LAVA_FIZZ, pos, 0);
}
+
+ // Purpur start - Implement infinite liquids

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/portal/PortalShape.java
+++ b/net/minecraft/world/level/portal/PortalShape.java
@@ -28,7 +_,7 @@
@@ -29,7 +_,7 @@
public static final int MAX_WIDTH = 21;
private static final int MIN_HEIGHT = 3;
public static final int MAX_HEIGHT = 21;