mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: eb11845f8 Fix creating worlds with "invalid" names (Fixes #5331) e4d8a6279 Implement Keyed on World bcb63dab7 [CI-SKIP] [Auto] Rebuild Patches 48342b06c Allow signs that are inside of the spawn protection to be right clicked to use their run_command tag c229f90c1 Add Block#isValidTool 20e709c1d Add recipe to cook events 2dcf8bff4 legacy formatting will be the death of me f597fea0d legacy formatting is worse than walking around in wet socks 7f72c4675 Use implementation-provided legacy serializer for events 27a8d99ec Adventure 4.7.0 e65bd35a1 Respect teams in legacy chat name if configured (#5321) b31089a92 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#5325) a52b30814 Fix title swapping fadeIn and stay 54ec85949 Prevent grindstones from overstacking items d7795080c Fix NPE for AIR in meta operations in ItemStack 2e70796c7 [CI-SKIP] Improve documentation of PreCreatureSpawnEvent (#5244) 7bb92e750 [CI-SKIP] Add JavaDoc links to Tag class pointing to custom Paper tags (#5285) 28cd686bf fix per-world difficulty command (#5306) be7cde2c7 [CI-SKIP] Always check PATH for JDK (#5315)
This commit is contained in:
@@ -318,10 +318,10 @@ index f0ce2fa068d9e442a8c0ad5d7e3a505e59556c89..8360f5656b1e5928a3ab73c808e85475
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
|
||||
index 0a59e02d762a096cb3de62e0f8105cc5a5fab8d4..bdf4e798ac8ca27edebd0122b894d15a76ecb9d0 100644
|
||||
index 451ffcfd1fc9fa3091dc2bd697e5d829dcf6443f..7677f4a2ec8bacadcbc6e68e13f56256f1963552 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBat.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBat.java
|
||||
@@ -14,9 +14,48 @@ public class EntityBat extends EntityAmbient {
|
||||
@@ -15,9 +15,48 @@ public class EntityBat extends EntityAmbient {
|
||||
|
||||
public EntityBat(EntityTypes<? extends EntityBat> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
@@ -370,7 +370,7 @@ index 0a59e02d762a096cb3de62e0f8105cc5a5fab8d4..bdf4e798ac8ca27edebd0122b894d15a
|
||||
@Override
|
||||
protected void initDatawatcher() {
|
||||
super.initDatawatcher();
|
||||
@@ -61,7 +100,7 @@ public class EntityBat extends EntityAmbient {
|
||||
@@ -62,7 +101,7 @@ public class EntityBat extends EntityAmbient {
|
||||
protected void collideNearby() {}
|
||||
|
||||
public static AttributeProvider.Builder m() {
|
||||
@@ -379,7 +379,7 @@ index 0a59e02d762a096cb3de62e0f8105cc5a5fab8d4..bdf4e798ac8ca27edebd0122b894d15a
|
||||
}
|
||||
|
||||
public boolean isAsleep() {
|
||||
@@ -93,6 +132,13 @@ public class EntityBat extends EntityAmbient {
|
||||
@@ -94,6 +133,13 @@ public class EntityBat extends EntityAmbient {
|
||||
|
||||
@Override
|
||||
protected void mobTick() {
|
||||
@@ -868,10 +868,10 @@ index cfb009c811bd2908d38da1b0007cb7aaed4e42c3..1219b0aa9c62bc9a1bda45cc9e9a27f1
|
||||
this.world.addEntity(mooshroom);
|
||||
this.die();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
index 2256b81624b12b6f6cb54250b24fa12ad6da621d..d186f257fa3bc613be7ec79cd6a6ff2e747cba78 100644
|
||||
index 36bf307985624a3567eb1196e034470bd7002e1e..7e5ede0f644a6e303be36ab0915d346a02760daa 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
@@ -18,12 +18,27 @@ public class EntityCreeper extends EntityMonster {
|
||||
@@ -19,12 +19,27 @@ public class EntityCreeper extends EntityMonster {
|
||||
public int maxFuseTicks = 30;
|
||||
public int explosionRadius = 3;
|
||||
private int bs;
|
||||
@@ -899,7 +899,7 @@ index 2256b81624b12b6f6cb54250b24fa12ad6da621d..d186f257fa3bc613be7ec79cd6a6ff2e
|
||||
@Override
|
||||
public GroupDataEntity prepare(WorldAccess worldaccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @javax.annotation.Nullable GroupDataEntity groupdataentity, @javax.annotation.Nullable NBTTagCompound nbttagcompound) {
|
||||
double chance = worldaccess.getMinecraftWorld().purpurConfig.creeperChargedChance;
|
||||
@@ -32,18 +47,69 @@ public class EntityCreeper extends EntityMonster {
|
||||
@@ -33,18 +48,69 @@ public class EntityCreeper extends EntityMonster {
|
||||
}
|
||||
return super.prepare(worldaccess, difficultydamagescaler, enummobspawn, groupdataentity, nbttagcompound);
|
||||
}
|
||||
@@ -969,7 +969,7 @@ index 2256b81624b12b6f6cb54250b24fa12ad6da621d..d186f257fa3bc613be7ec79cd6a6ff2e
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
|
||||
this.targetSelector.a(2, new PathfinderGoalHurtByTarget(this, new Class[0]));
|
||||
}
|
||||
@@ -174,6 +240,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
@@ -175,6 +241,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
return (Integer) this.datawatcher.get(EntityCreeper.b);
|
||||
}
|
||||
|
||||
@@ -977,7 +977,7 @@ index 2256b81624b12b6f6cb54250b24fa12ad6da621d..d186f257fa3bc613be7ec79cd6a6ff2e
|
||||
public void a(int i) {
|
||||
this.datawatcher.set(EntityCreeper.b, i);
|
||||
}
|
||||
@@ -274,6 +341,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
@@ -275,6 +342,7 @@ public class EntityCreeper extends EntityMonster {
|
||||
com.destroystokyo.paper.event.entity.CreeperIgniteEvent event = new com.destroystokyo.paper.event.entity.CreeperIgniteEvent((org.bukkit.entity.Creeper) getBukkitEntity(), ignited);
|
||||
if (event.callEvent()) {
|
||||
this.datawatcher.set(EntityCreeper.d, event.isIgnited());
|
||||
@@ -1175,7 +1175,7 @@ index 1a102816921fa3b40f6d364bb826db4459f68eb2..125eab60f2b4657e52a71eddf7586c57
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
index a5a2182455542bb8fd62941bd0da2f38ba698f35..c10f1f95ac786ae876684507412ea4affed99b1b 100644
|
||||
index f777aea69dc9949aae3251e9a530b8cffb251bad..497d05996ab84f599aa0a02f853149f074e4d3cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
|
||||
@@ -1979,10 +1979,10 @@ index f958751b16abcc36910bb0b655ff2360459e2e4c..4ffc61acdff8c51dc9b111e3024c828f
|
||||
protected void eK() {
|
||||
this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue((double) this.fp());
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
index 895c092197404ad4911ec9f94d1bda1322e45fa7..ff10f512dc6062638c15980b46be10f50d08478c 100644
|
||||
index 784819d252d94e8040a87f53431fcf2c7a19d1a7..8fde406273bbea0b9d2dea2362cf6372b7a5c9ae 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
@@ -39,12 +39,27 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
||||
@@ -40,12 +40,27 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
||||
|
||||
protected EntityHorseAbstract(EntityTypes<? extends EntityHorseAbstract> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
@@ -2010,7 +2010,7 @@ index 895c092197404ad4911ec9f94d1bda1322e45fa7..ff10f512dc6062638c15980b46be10f5
|
||||
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.2D));
|
||||
this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D));
|
||||
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D, EntityHorseAbstract.class));
|
||||
@@ -52,6 +67,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
||||
@@ -53,6 +68,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
||||
this.goalSelector.a(6, new PathfinderGoalRandomStrollLand(this, 0.7D));
|
||||
this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
|
||||
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
|
||||
@@ -2556,10 +2556,10 @@ index 874dd39825b41f4e2b366446359920989961f084..cd28463e2bf944d94c121c8f8d6e3722
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
index 38df17bd206c908582ece2c4105235feaf0f2227..7966b34f8d202d2260a35baa4cd594e4def89257 100644
|
||||
index 91cfe60f764a573e3724b48a9ae02e806c1e4fb8..e38d165fefb4d552ded2198536a6663a5688070d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
@@ -20,6 +20,18 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
@@ -21,6 +21,18 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
super(entitytypes, world);
|
||||
}
|
||||
|
||||
@@ -2578,7 +2578,7 @@ index 38df17bd206c908582ece2c4105235feaf0f2227..7966b34f8d202d2260a35baa4cd594e4
|
||||
@Override
|
||||
public float a(BlockPosition blockposition, IWorldReader iworldreader) {
|
||||
return iworldreader.getType(blockposition.down()).a(Blocks.MYCELIUM) ? 10.0F : iworldreader.y(blockposition) - 0.5F;
|
||||
@@ -81,7 +93,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
@@ -82,7 +94,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
} else if (itemstack.getItem() == Items.SHEARS && this.canShear()) {
|
||||
// CraftBukkit start
|
||||
if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) {
|
||||
@@ -2587,7 +2587,7 @@ index 38df17bd206c908582ece2c4105235feaf0f2227..7966b34f8d202d2260a35baa4cd594e4
|
||||
}
|
||||
// CraftBukkit end
|
||||
this.shear(SoundCategory.PLAYERS);
|
||||
@@ -101,7 +113,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
@@ -102,7 +114,7 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
Optional<Pair<MobEffectList, Integer>> optional = this.l(itemstack);
|
||||
|
||||
if (!optional.isPresent()) {
|
||||
@@ -3588,10 +3588,10 @@ index 2908e9cc47947daad19391d38da3c2a300f67fe5..a151d4295c02930687a23212647de60c
|
||||
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
|
||||
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java
|
||||
index 7bedaf02c4a56067f55a5d15cb18c002df87a404..30e0e14162cce0c0d228139d4c537243a400ef13 100644
|
||||
index 49f6ee064fa7b79c7a9fd7a3344ed2334ce1f9f6..11a6b939ebb51cdda907531d30b7beb3a8562673 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityShulker.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityShulker.java
|
||||
@@ -29,12 +29,26 @@ public class EntityShulker extends EntityGolem implements IMonster {
|
||||
@@ -30,12 +30,26 @@ public class EntityShulker extends EntityGolem implements IMonster {
|
||||
this.f = 5;
|
||||
}
|
||||
|
||||
@@ -3618,7 +3618,7 @@ index 7bedaf02c4a56067f55a5d15cb18c002df87a404..30e0e14162cce0c0d228139d4c537243
|
||||
this.targetSelector.a(1, (new PathfinderGoalHurtByTarget(this, new Class[0])).a(new Class[0])); // CraftBukkit - decompile error
|
||||
this.targetSelector.a(2, new EntityShulker.d(this));
|
||||
this.targetSelector.a(3, new EntityShulker.c(this));
|
||||
@@ -518,7 +532,7 @@ public class EntityShulker extends EntityGolem implements IMonster {
|
||||
@@ -519,7 +533,7 @@ public class EntityShulker extends EntityGolem implements IMonster {
|
||||
|
||||
private int b;
|
||||
|
||||
@@ -3756,10 +3756,10 @@ index c872be77a6cd767520d5412b38ec4ed4fa87ac2f..96cb080d940db22330598a8806726088
|
||||
protected void initPathfinder() {
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityPiglinAbstract.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6fba05d32d 100644
|
||||
index 80fab9290479f876fd78997c1bd55fe6b00aac45..7f3d57a9399f60465fae27f03fc57df625f5016d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
@@ -34,12 +34,45 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -35,12 +35,45 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
this.moveController = new EntitySlime.ControllerMoveSlime(this);
|
||||
}
|
||||
|
||||
@@ -3805,7 +3805,7 @@ index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6f
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, 10, true, false, (entityliving) -> {
|
||||
return Math.abs(entityliving.locY() - this.locY()) <= 4.0D;
|
||||
}));
|
||||
@@ -325,11 +358,12 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -326,11 +359,12 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -3819,7 +3819,7 @@ index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6f
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -498,10 +532,10 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -499,10 +533,10 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -3832,7 +3832,7 @@ index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6f
|
||||
private final EntitySlime k;
|
||||
private boolean l;
|
||||
|
||||
@@ -523,15 +557,27 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -524,15 +558,27 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
|
||||
@Override
|
||||
public void a() {
|
||||
@@ -3862,7 +3862,7 @@ index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6f
|
||||
if (this.j-- <= 0) {
|
||||
this.j = this.k.eJ();
|
||||
if (this.l) {
|
||||
@@ -548,7 +594,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -549,7 +595,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
this.a.q(0.0F);
|
||||
}
|
||||
} else {
|
||||
@@ -3872,10 +3872,10 @@ index 8a1ff579ddf2fef191bc370dc51dd2e6404d9a22..3c14ed27e5b487451846f6811f189e6f
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
index 51396cbd18d0e053e788f82bf4a3bc2533f20e11..66a90507aaf16bb8512a77f3c9aa501697e49862 100644
|
||||
index c39f3c06eb199a24f32a5c581e877073b580502c..e370de0ade49ac81d746588bf0991101eba0ce2d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
@@ -13,12 +13,26 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
@@ -14,12 +14,26 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
super(entitytypes, world);
|
||||
}
|
||||
|
||||
@@ -3902,7 +3902,7 @@ index 51396cbd18d0e053e788f82bf4a3bc2533f20e11..66a90507aaf16bb8512a77f3c9aa5016
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 10, true, false, (entityliving) -> {
|
||||
return entityliving instanceof IMonster;
|
||||
}));
|
||||
@@ -70,6 +84,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
@@ -71,6 +85,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3910,7 +3910,7 @@ index 51396cbd18d0e053e788f82bf4a3bc2533f20e11..66a90507aaf16bb8512a77f3c9aa5016
|
||||
IBlockData iblockdata = Blocks.SNOW.getBlockData();
|
||||
|
||||
for (int l = 0; l < 4; ++l) {
|
||||
@@ -112,7 +127,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
@@ -113,7 +128,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
if (itemstack.getItem() == Items.SHEARS && this.canShear()) {
|
||||
// CraftBukkit start
|
||||
if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) {
|
||||
@@ -3919,7 +3919,7 @@ index 51396cbd18d0e053e788f82bf4a3bc2533f20e11..66a90507aaf16bb8512a77f3c9aa5016
|
||||
}
|
||||
// CraftBukkit end
|
||||
this.shear(SoundCategory.PLAYERS);
|
||||
@@ -132,7 +147,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
@@ -133,7 +148,7 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
return EnumInteractionResult.SUCCESS;
|
||||
// Purpur end
|
||||
} else {
|
||||
@@ -4219,10 +4219,10 @@ index 4ad393bc99881d813e2b349fb929fc8e69631723..2b34e6cf3b86319bd2875d92b6390288
|
||||
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().m()) {
|
||||
double d0 = this.b - this.i.locX();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
|
||||
index ed6a47ad2fd973695fbb151d1a44000ec3639e54..ac75ed3e2e0e0cd8f91de9ff188e173591443b72 100644
|
||||
index 9a33866e7529e1636c228bab01205737bc678b47..9336fbbd46c7c6ac11adf8e4cc2735f81c9ed639 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVex.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVex.java
|
||||
@@ -19,6 +19,45 @@ public class EntityVex extends EntityMonster {
|
||||
@@ -18,6 +18,45 @@ public class EntityVex extends EntityMonster {
|
||||
this.f = 3;
|
||||
}
|
||||
|
||||
@@ -4268,7 +4268,7 @@ index ed6a47ad2fd973695fbb151d1a44000ec3639e54..ac75ed3e2e0e0cd8f91de9ff188e1735
|
||||
@Override
|
||||
public void move(EnumMoveType enummovetype, Vec3D vec3d) {
|
||||
super.move(enummovetype, vec3d);
|
||||
@@ -27,7 +66,7 @@ public class EntityVex extends EntityMonster {
|
||||
@@ -26,7 +65,7 @@ public class EntityVex extends EntityMonster {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -4277,7 +4277,7 @@ index ed6a47ad2fd973695fbb151d1a44000ec3639e54..ac75ed3e2e0e0cd8f91de9ff188e1735
|
||||
super.tick();
|
||||
this.noclip = false;
|
||||
this.setNoGravity(true);
|
||||
@@ -42,17 +81,19 @@ public class EntityVex extends EntityMonster {
|
||||
@@ -41,17 +80,19 @@ public class EntityVex extends EntityMonster {
|
||||
protected void initPathfinder() {
|
||||
super.initPathfinder();
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
@@ -4298,7 +4298,7 @@ index ed6a47ad2fd973695fbb151d1a44000ec3639e54..ac75ed3e2e0e0cd8f91de9ff188e1735
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -284,14 +325,14 @@ public class EntityVex extends EntityMonster {
|
||||
@@ -283,14 +324,14 @@ public class EntityVex extends EntityMonster {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4316,10 +4316,10 @@ index ed6a47ad2fd973695fbb151d1a44000ec3639e54..ac75ed3e2e0e0cd8f91de9ff188e1735
|
||||
Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ());
|
||||
double d0 = vec3d.f();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
index eb8c84977bc757494c08588d2566f402a17357fa..bc82946d8869f89a9624bebf8dc1099d0f6bd126 100644
|
||||
index 762f1acf435c6e7b6d695fc1b2120de0116f46da..15e052cb844df310c62d8a5695e8da6c633d94b6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
@@ -75,8 +75,19 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
@@ -73,8 +73,19 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
@@ -4339,7 +4339,7 @@ index eb8c84977bc757494c08588d2566f402a17357fa..bc82946d8869f89a9624bebf8dc1099d
|
||||
if (world.purpurConfig.villagerFollowEmeraldBlock) this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.0D, false, TEMPT_ITEMS));
|
||||
}
|
||||
|
||||
@@ -241,7 +252,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
@@ -239,7 +250,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
if (itemstack.getItem() != Items.VILLAGER_SPAWN_EGG && this.isAlive() && !this.eN() && !this.isSleeping()) {
|
||||
if (this.isBaby()) {
|
||||
this.fk();
|
||||
@@ -4348,7 +4348,7 @@ index eb8c84977bc757494c08588d2566f402a17357fa..bc82946d8869f89a9624bebf8dc1099d
|
||||
} else {
|
||||
boolean flag = this.getOffers().isEmpty();
|
||||
|
||||
@@ -254,8 +265,9 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
@@ -252,8 +263,9 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
@@ -4360,10 +4360,10 @@ index eb8c84977bc757494c08588d2566f402a17357fa..bc82946d8869f89a9624bebf8dc1099d
|
||||
this.h(entityhuman);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
index 298d2b6f6e352bb82f3a5a307466bb6e8f47d9d3..d41960088bb8bc6a7fece0ef152403c43a768dde 100644
|
||||
index 432956d9d5f2706014d67232b88e6b86011484f3..b9418fac0a05d4bb5f8f215a5704bba332e3f7cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
@@ -24,6 +24,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@@ -25,6 +25,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
this.goalSelector.a(0, new PathfinderGoalFloat(this));
|
||||
@@ -4371,7 +4371,7 @@ index 298d2b6f6e352bb82f3a5a307466bb6e8f47d9d3..d41960088bb8bc6a7fece0ef152403c4
|
||||
this.goalSelector.a(0, new PathfinderGoalUseItem<>(this, PotionUtil.a(new ItemStack(Items.POTION), Potions.INVISIBILITY), SoundEffects.ENTITY_WANDERING_TRADER_DISAPPEARED, (entityvillagertrader) -> {
|
||||
return this.world.isNight() && !entityvillagertrader.isInvisible();
|
||||
}));
|
||||
@@ -49,6 +50,16 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@@ -50,6 +51,16 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
}
|
||||
|
||||
// Purpur - start
|
||||
@@ -4388,7 +4388,7 @@ index 298d2b6f6e352bb82f3a5a307466bb6e8f47d9d3..d41960088bb8bc6a7fece0ef152403c4
|
||||
@Override
|
||||
public boolean a(EntityHuman entityhuman) {
|
||||
return world.purpurConfig.villagerTraderCanBeLeashed && !this.isLeashed();
|
||||
@@ -76,8 +87,9 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@@ -77,8 +88,9 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
}
|
||||
|
||||
if (this.getOffers().isEmpty()) {
|
||||
@@ -4772,10 +4772,10 @@ index e76e6ebde73b93dc06e76b71cdf6371c3654160a..d92fe8013fb3b43cb7eabdf1c624291b
|
||||
this.eL();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
index 2ff49b5c8ba62f781cdaef2d19c0504cb710b3ff..7e1e056bdd966a14a184eb76717116998b6e5cb3 100644
|
||||
index 291748b3436c18653fa959cfd8c92240aa17508c..2076fe3e467c16bb400a75f9ea82f5b0773126be 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
@@ -47,6 +47,16 @@ public class EntityZombie extends EntityMonster {
|
||||
@@ -46,6 +46,16 @@ public class EntityZombie extends EntityMonster {
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
@@ -4792,7 +4792,7 @@ index 2ff49b5c8ba62f781cdaef2d19c0504cb710b3ff..7e1e056bdd966a14a184eb7671711699
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return world.purpurConfig.zombieJockeyOnlyBaby;
|
||||
}
|
||||
@@ -62,9 +72,11 @@ public class EntityZombie extends EntityMonster {
|
||||
@@ -61,9 +71,11 @@ public class EntityZombie extends EntityMonster {
|
||||
|
||||
@Override
|
||||
protected void initPathfinder() {
|
||||
@@ -4826,7 +4826,7 @@ index ce6d79780197eb9300130036a8ed84648a17f9cf..02b0ae550a0ed33b5b43beedf3b14059
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return world.purpurConfig.huskJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
index 505c83f3e3ad61c2d4d40c4df017e1f7a9a3ad8c..0c47477b416980d2e932321730525bf5a8feda4f 100644
|
||||
index 5a71381c9f1832710001b6bfa63d6815c3cd1ab0..5b6ed77fb2b92b5bf701de436c8d7235bfe82685 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
@@ -29,6 +29,16 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
|
||||
@@ -4889,10 +4889,10 @@ index dc9f2a1a132b3a7925bd62aa1da0512afd90b8b1..b7e540dfeeabb13227596ecfc6eddabf
|
||||
Entity entity1 = this.getShooter();
|
||||
// Paper start - Cancel hit for vanished players
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 80553b2dfc380e60ae36b99759f60d126eb29de0..cd01859f3fe24d2eb9554e663c1a092038e93f02 100644
|
||||
index a3ddf2839738e089a02d841f5b6fd759c3047305..85c14df768ec844b710bf2b32eb7f85c9e6b47ea 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1416,6 +1416,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||
@@ -1418,6 +1418,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||
WorldServer worldserver = (WorldServer) iterator.next();
|
||||
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
||||
worldserver.hasEntityMoveEvent = EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
||||
@@ -4947,7 +4947,7 @@ index 0000000000000000000000000000000000000000..44929182dfd7ad847d9657c324f440cb
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 9368578a136157496f6cc60f7f01c5d28eff115e..bacb0e7c421a14a1dae57b7824c9d55ed0f39517 100644
|
||||
index 48d032ed74effcfd66e1ab01548913964bca4d19..7be03bb416a5723ce65411ba5d0b967040e8033c 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -2307,6 +2307,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -6341,7 +6341,7 @@ index 0000000000000000000000000000000000000000..9a9e46d7ee247f9e43ae5c697f10e466
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 744e6351c58e5aa4a0c668f2ff1adb76a3dc0822..a3b810556e306bc2be65c7811cfa7806d5752cfa 100644
|
||||
index 2af3bee540ee25ea32a7548fd0d64dea16a0a268..5471422d23d261a06c67f9374cae933430ec03a0 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1174,4 +1174,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
Reference in New Issue
Block a user