mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
first 50 patches applied
This commit is contained in:
@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity safeFallDistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
index b777e530122549455dcce6fac8d4a151c1c0af42..c79633aa059a13753069cf06444e1834137f86c4 100644
|
||||
index b777e530122549455dcce6fac8d4a151c1c0af42..57a3e330043077f042a284c99e2631e1582cb32c 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -1447,4 +1447,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
@@ -1447,4 +1447,24 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
*/
|
||||
void setBodyYaw(float bodyYaw);
|
||||
// Paper end - body yaw API
|
||||
@@ -18,14 +18,18 @@ index b777e530122549455dcce6fac8d4a151c1c0af42..c79633aa059a13753069cf06444e1834
|
||||
+ * Gets the distance (in blocks) this entity can safely fall without taking damage
|
||||
+ *
|
||||
+ * @return Safe fall distance
|
||||
+ * @deprecated use {@link org.bukkit.attribute.Attribute#GENERIC_SAFE_FALL_DISTANCE} instead
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ float getSafeFallDistance();
|
||||
+
|
||||
+ /**
|
||||
+ * Set the distance (in blocks) this entity can safely fall without taking damage
|
||||
+ *
|
||||
+ * @param safeFallDistance Safe fall distance
|
||||
+ * @deprecated use {@link org.bukkit.attribute.Attribute#GENERIC_SAFE_FALL_DISTANCE} instead
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ void setSafeFallDistance(float safeFallDistance);
|
||||
+ // Purpur end
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
index c79633aa059a13753069cf06444e1834137f86c4..6690c06f548e5fc1966b79eb9ae5b7ddddb07a6c 100644
|
||||
index 57a3e330043077f042a284c99e2631e1582cb32c..3c5df0d60777dc6bc4dd38017423c38fcb6ed065 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -1462,5 +1462,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
* @param safeFallDistance Safe fall distance
|
||||
@@ -1466,5 +1466,12 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
*/
|
||||
@Deprecated
|
||||
void setSafeFallDistance(float safeFallDistance);
|
||||
+
|
||||
+ /**
|
||||
|
||||
@@ -23,10 +23,10 @@ index 50344412a04f3008439e337ecf9dd09c7f853bc9..f482467ae784b134da97eb38afb7f125
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
index 6690c06f548e5fc1966b79eb9ae5b7ddddb07a6c..4cbad9f23f232297ca1254c000b456042ffa26df 100644
|
||||
index 3c5df0d60777dc6bc4dd38017423c38fcb6ed065..b6c928d1e0d659280d9a61456be8534604cc166b 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -1469,5 +1469,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
@@ -1473,5 +1473,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
* @param slot Equipment slot to play break animation for
|
||||
*/
|
||||
void broadcastItemBreak(@NotNull org.bukkit.inventory.EquipmentSlot slot);
|
||||
|
||||
@@ -5,20 +5,20 @@ Subject: [PATCH] Configurable entity base attributes
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 75d1990cc33b06652ba0cdf5ee631594cf259d31..9ced09b01af013cd2e4e64e106dee147ae369dec 100644
|
||||
index 9c99a3df80c5f0a0d81e1f6a6516d088438a0b1e..e49dda27dd609ebf377f679c4f60c13a5f610c8e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -160,7 +160,7 @@ import org.bukkit.plugin.PluginManager;
|
||||
@@ -163,7 +163,7 @@ import org.bukkit.plugin.PluginManager;
|
||||
// CraftBukkit end
|
||||
|
||||
public abstract class Entity implements Nameable, EntityAccess, CommandSource, ScoreHolder {
|
||||
public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess, CommandSource, ScoreHolder {
|
||||
-
|
||||
+ public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur
|
||||
// CraftBukkit start
|
||||
private static final int CURRENT_LEVEL = 2;
|
||||
public boolean preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported; keep initial motion on first setPositionRotation
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
index 4d4b57d40d8bac8d666716b0f36e1af2ca7c1ef1..bf47cf511b5e3c0107354f289b740bd804b5f978 100644
|
||||
index aa76a24421cdb3908a3544d92eb3d1e3c2ebedc4..8211c152e6f4232e82e452b08047e4579465d770 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
|
||||
@@ -36,6 +36,11 @@ public class GlowSquid extends Squid {
|
||||
@@ -34,18 +34,18 @@ index 4d4b57d40d8bac8d666716b0f36e1af2ca7c1ef1..bf47cf511b5e3c0107354f289b740bd8
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 98907fee8d85e7b7dc66807a0717134db3a94c33..3c7c618dd9611485b81336ca4a5059fcb1e4f1ff 100644
|
||||
index 72bd60f691a639a0e7b6b5a98e5a3816305cfdaf..a3ee2af337acef86a15b12c9e6d8cd8452980a87 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -287,6 +287,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.useItem = ItemStack.EMPTY;
|
||||
@@ -301,6 +301,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.lastClimbablePos = Optional.empty();
|
||||
this.appliedScale = 1.0F;
|
||||
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur
|
||||
+ this.initAttributes(); // Purpur
|
||||
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
|
||||
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
|
||||
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
|
||||
@@ -302,6 +303,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -315,6 +316,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap()))));
|
||||
}
|
||||
|
||||
@@ -55,10 +55,10 @@ index 98907fee8d85e7b7dc66807a0717134db3a94c33..3c7c618dd9611485b81336ca4a5059fc
|
||||
return this.brain;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
index f8c2e2a7065a3ad5b306ebab3d04a12f362c2ea1..8910aaaa1fdabecec4740d6212db3114bd1197fc 100644
|
||||
index f8a649b0fee040bbf53084ca7094583ab4ffd900..cea588d68c7e23ad8831bc611f1030d63354d91c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
|
||||
@@ -268,6 +268,18 @@ public class Bat extends AmbientCreature {
|
||||
@@ -265,6 +265,18 @@ public class Bat extends AmbientCreature {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,10 +78,10 @@ index f8c2e2a7065a3ad5b306ebab3d04a12f362c2ea1..8910aaaa1fdabecec4740d6212db3114
|
||||
public void readAdditionalSaveData(CompoundTag nbt) {
|
||||
super.readAdditionalSaveData(nbt);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
index 78e802a4bd994b6988ae415cf2958bb828830964..c1f71bf53dac227e6b8c6dbd88473fe79b6a2c64 100644
|
||||
index 4b84cf76d052112e00cd13c330182abfbe618820..ae4b53f4cdd78368deb7d510be4936ffefce4d9c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
||||
@@ -478,6 +478,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
@@ -467,6 +467,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,26 +94,28 @@ index 78e802a4bd994b6988ae415cf2958bb828830964..c1f71bf53dac227e6b8c6dbd88473fe7
|
||||
public int getRemainingPersistentAngerTime() {
|
||||
return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
index 25636efbdb55605303e390f63276ef0bfd4929ba..83e715c9604efc9586171fd32c7cd2b339bc2349 100644
|
||||
index 3826c794ddde6b915e233e2d0395557e3ea867e0..7930e9735abf8357df737798e80b08295c2e06ec 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
||||
@@ -123,6 +123,11 @@ public class Cat extends TamableAnimal implements VariantHolder<CatVariant> {
|
||||
@@ -129,6 +129,13 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public void initAttributes() {
|
||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.catMaxHealth);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
public ResourceLocation getResourceLocation() {
|
||||
return this.getVariant().texture();
|
||||
public ResourceLocation getTextureId() {
|
||||
return ((CatVariant) this.getVariant().value()).texture();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
index 89e93366395136af826d26be2b85ac881e0dfacc..3c06fe81e2e1d7bd546ead0d13d87cbe7e2e7b5b 100644
|
||||
index 3e335383a28b510c779bfbf2b916653a25c6d43b..a7c76e1d89f54f0dc3b27a8a8db168ea4570bf60 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
@@ -72,6 +72,11 @@ public class Chicken extends Animal {
|
||||
@@ -71,6 +71,11 @@ public class Chicken extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -142,10 +144,10 @@ index e2a98b45e56a368de19bb65e304370a5998c7cb9..3d61c2d5da103de68242c16d85c70381
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index b0cff23aa6f841ad291437964ea5bebb6395de84..f440eabffb1abe4c7370bf7badf6137a22f99071 100644
|
||||
index 41b6c79c31414378d433500a35e434e546738e42..bee1a275f242866206dc461461b7962e04289ddc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -62,6 +62,11 @@ public class Cow extends Animal {
|
||||
@@ -61,6 +61,11 @@ public class Cow extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -158,10 +160,10 @@ index b0cff23aa6f841ad291437964ea5bebb6395de84..f440eabffb1abe4c7370bf7badf6137a
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
index 18380c1ee458507de98a8aeb53c8b0c863d1eb89..df6306572f11762ec0d54b738c1a8a30269c9224 100644
|
||||
index 3af2017a4b860992a6db88edec3624fcb9884ae1..4f294b3ecf061f34046b52bf2b6a3d0ff1ed347b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||
@@ -159,6 +159,11 @@ public class Dolphin extends WaterAnimal {
|
||||
@@ -157,6 +157,11 @@ public class Dolphin extends WaterAnimal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -172,12 +174,12 @@ index 18380c1ee458507de98a8aeb53c8b0c863d1eb89..df6306572f11762ec0d54b738c1a8a30
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index c63634825ffffed2eccc560af9e9fcef1a9dc2e8..3faa945f9687abeba7a36f8198cb307685e348a9 100644
|
||||
index 935dff4d167d8b6ef4b7cdc95bf000a2ce761f92..8666d82775570b812d5bdd80336c8e14db6ddf47 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -186,6 +186,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -183,6 +183,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -187,13 +189,13 @@ index c63634825ffffed2eccc560af9e9fcef1a9dc2e8..3faa945f9687abeba7a36f8198cb3076
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
index cb05267fb287b9de9d1829e90d9bb9c9f4aac9f7..46e28d807a72b6d302d29d65c52ab0813cd82b1a 100644
|
||||
index 4cc9138201b08aff8bb47720c6fe1e3447f03967..2919d055e2136a956aa038bd0bf4c1a2ff5afa2f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
||||
@@ -81,6 +81,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
@@ -76,6 +76,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
|
||||
public boolean isControllable() {
|
||||
return level().purpurConfig.ironGolemControllable;
|
||||
}
|
||||
@@ -206,7 +208,7 @@ index cb05267fb287b9de9d1829e90d9bb9c9f4aac9f7..46e28d807a72b6d302d29d65c52ab081
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
index b59d6a3f799f100702efb1fd10bbc48da4f4bd8f..0ff5902dde47c4bb9922d6605d874868fb4820b9 100644
|
||||
index 11944ee34fc7e3e5551b9e18a563164f96898a54..b47dddb2fc6058a90665ccbd362088d9a2e837b5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
@@ -81,6 +81,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
@@ -222,10 +224,10 @@ index b59d6a3f799f100702efb1fd10bbc48da4f4bd8f..0ff5902dde47c4bb9922d6605d874868
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
|
||||
return world.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : world.getPathfindingCostFromLightLevels(pos);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
index 66f80ec010909648278c4e74c80d3766b9cf6c6a..14daac1a87e32e0ff0a610aef256e20cbfe50001 100644
|
||||
index 2b074f68c1be2ff591543685bbb4e7ea1c7784f8..31f3982359a00f55a7fc053becc4043dcf423c50 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
|
||||
@@ -87,6 +87,11 @@ public class Ocelot extends Animal {
|
||||
@@ -83,6 +83,11 @@ public class Ocelot extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -238,10 +240,10 @@ index 66f80ec010909648278c4e74c80d3766b9cf6c6a..14daac1a87e32e0ff0a610aef256e20c
|
||||
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
index c900776b626b2f038b92dedc86bb9f431e0e0b89..641e0ba16afe6720c5a5ff4e8e4882d4e9bdb46d 100644
|
||||
index 5f9b7ae2ed4acff0fa7cfee07a29a28b5c0d67f8..d2410da0b453e0128ff8b00956cae89cabff1d5d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
||||
@@ -141,6 +141,12 @@ public class Panda extends Animal {
|
||||
@@ -146,6 +146,12 @@ public class Panda extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -254,7 +256,7 @@ index c900776b626b2f038b92dedc86bb9f431e0e0b89..641e0ba16afe6720c5a5ff4e8e4882d4
|
||||
@Override
|
||||
public boolean canTakeItem(ItemStack stack) {
|
||||
EquipmentSlot enumitemslot = Mob.getEquipmentSlotForItem(stack);
|
||||
@@ -642,7 +648,10 @@ public class Panda extends Animal {
|
||||
@@ -660,7 +666,10 @@ public class Panda extends Animal {
|
||||
|
||||
public void setAttributes() {
|
||||
if (this.isWeak()) {
|
||||
@@ -267,10 +269,10 @@ index c900776b626b2f038b92dedc86bb9f431e0e0b89..641e0ba16afe6720c5a5ff4e8e4882d4
|
||||
|
||||
if (this.isLazy()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
index 06568c109d806a4e98b092016d0efd5b2cdfd359..9334fb348e559ee27ba38bbd51c30876206c2af4 100644
|
||||
index 12200cca54304d567a1880527a49f3e26ad08c7b..04507e05b499e536faa3c55179bb91913f7cda81 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
|
||||
@@ -193,6 +193,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
@@ -186,6 +186,11 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -281,12 +283,12 @@ index 06568c109d806a4e98b092016d0efd5b2cdfd359..9334fb348e559ee27ba38bbd51c30876
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
index ebfa162f172bdad7b17ce153fdee508748620fc0..fdf5651c7877313437ecd32914823d00e53bdb99 100644
|
||||
index 7d2579748fd182b89667edb2eb3ea65b195e2001..a365573c5c5e640f165701bc79f7c605674c5709 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
@@ -85,6 +85,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -81,6 +81,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -299,7 +301,7 @@ index ebfa162f172bdad7b17ce153fdee508748620fc0..fdf5651c7877313437ecd32914823d00
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
index a1195a7465883b944bd12a793701e4774944be68..a681042dac350be5f5828508a7eefbc473376a94 100644
|
||||
index d97314380b69ea2ad83b86c0f1bcaaccd4a1644f..00afde0ec4811992aac306a42d473026b7e7e468 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
@@ -93,6 +93,11 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -315,10 +317,10 @@ index a1195a7465883b944bd12a793701e4774944be68..a681042dac350be5f5828508a7eefbc4
|
||||
@Override
|
||||
public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
index 95383e246a8e1b311e4f26a66372966b6bc51de5..8b5bf8ef4481ccc829d1a39c0921941581b2f045 100644
|
||||
index d75016647c513841358d08e5931821ecf8c21c2a..0682df1037e23068c715f7bc06f1dc461641bb2f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pufferfish.java
|
||||
@@ -57,6 +57,11 @@ public class Pufferfish extends AbstractFish {
|
||||
@@ -63,6 +63,11 @@ public class Pufferfish extends AbstractFish {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -328,13 +330,13 @@ index 95383e246a8e1b311e4f26a66372966b6bc51de5..8b5bf8ef4481ccc829d1a39c09219415
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
index f8989e0db656389fe04487d5d407aacc0add1797..23ede55b9b1198c72fe93b086129d4725d9352fe 100644
|
||||
index ba408a4195e03b484f143fbe66d5d3b13ebb8f11..9eb1158213064ddb37ae76e445b5861b963a1f55 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
@@ -138,6 +138,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@@ -137,6 +137,11 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
}
|
||||
wasOnGround = onGround;
|
||||
}
|
||||
@@ -363,10 +365,10 @@ index 87c442fb198cad8671ad1419e589a5a67c4fdca8..742805994f29a18af444912b10af631d
|
||||
public int getMaxSchoolSize() {
|
||||
return 5;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
index ffcb68cd299370d5a17ed92ba3814c8afe613cf9..1d69558cccc6add5f02f1ff070c985bd5ec406c0 100644
|
||||
index 7c1da46554aefde8e5e2b33a3644c9cbd771d7bc..b68886cc72d3055e7745fe4a955192bbad90dc13 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
@@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
@@ -134,6 +134,11 @@ public class Sheep extends Animal implements Shearable {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -379,10 +381,10 @@ index ffcb68cd299370d5a17ed92ba3814c8afe613cf9..1d69558cccc6add5f02f1ff070c985bd
|
||||
protected void registerGoals() {
|
||||
this.eatBlockGoal = new EatBlockGoal(this);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index c48ceed671e1804756d8a11208e5f7e5094a4bb1..35392365838bd412255777d1a53bc058eb13ff73 100644
|
||||
index d51b486afb83bf3e12046ed5e61e73eec5bd7c7c..a54893d51cc1ce204e59a6ffe8b84228775af4da 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -71,6 +71,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -69,6 +69,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -395,10 +397,10 @@ index c48ceed671e1804756d8a11208e5f7e5094a4bb1..35392365838bd412255777d1a53bc058
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index 7b6e1f5a44a5a690dca97693bb053d3186ff1b69..9f598ff84b836d10e215c7e8fe79735f7f41e32b 100644
|
||||
index 37402f7df48f04a6df2211e079519ed95d3735bc..e38416189d9dc72f0b5951a1f6430dbc4578c422 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -70,6 +70,11 @@ public class Squid extends WaterAnimal {
|
||||
@@ -68,6 +68,11 @@ public class Squid extends WaterAnimal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -411,10 +413,10 @@ index 7b6e1f5a44a5a690dca97693bb053d3186ff1b69..9f598ff84b836d10e215c7e8fe79735f
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
index 3ec6caf965c9a69eb56e507e2c452129064d3c68..b8b4ca31ad2fc5292082905c979a974a4ed42dab 100644
|
||||
index 18dcb67d246b63637d8c948b6c3f48c58d71c339..327b1805d9d4069212a8772ff189c9ab24ae1183 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/TropicalFish.java
|
||||
@@ -77,6 +77,11 @@ public class TropicalFish extends AbstractSchoolingFish implements VariantHolder
|
||||
@@ -79,6 +79,11 @@ public class TropicalFish extends AbstractSchoolingFish implements VariantHolder
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -427,10 +429,10 @@ index 3ec6caf965c9a69eb56e507e2c452129064d3c68..b8b4ca31ad2fc5292082905c979a974a
|
||||
return "entity.minecraft.tropical_fish.predefined." + variant;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
index 29788b801e1faba6d7671e64e280ff585842ed27..31ed37796a4c88ecf514f298631f37210daf929a 100644
|
||||
index 4742d90ca38c1d8034b0cfcf7f336e225fade197..b8dcf3d632c79585ec7e9f50fa040fa9fac5d7c5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
|
||||
@@ -103,6 +103,11 @@ public class Turtle extends Animal {
|
||||
@@ -104,6 +104,11 @@ public class Turtle extends Animal {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -443,10 +445,10 @@ index 29788b801e1faba6d7671e64e280ff585842ed27..31ed37796a4c88ecf514f298631f3721
|
||||
this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos...
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
index 0c3d29e55c3c1aacbf337cc24ac220c92866b84e..b5c1efc1a67cdf163420b55e49baef9d78d9518f 100644
|
||||
index 731909acd1e18dcfbd25becb0ddff30fb2a6a0f5..8aaac4e86ec6d9c40999f6198cda7d367ece54e3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
||||
@@ -127,6 +127,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
|
||||
@@ -146,6 +146,11 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -459,10 +461,10 @@ index 0c3d29e55c3c1aacbf337cc24ac220c92866b84e..b5c1efc1a67cdf163420b55e49baef9d
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
index a1bc178165f3481c2b4e399f0284f4482ba246c1..48b0df2acccd0d406ba05aaeb6dfbfde57cc1366 100644
|
||||
index 045ac081120f65987251d04d1522a5b7197e1d88..414ff28670c3d36dc78e3df4d39b6d4eb3ec1e77 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
|
||||
@@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
@@ -113,6 +113,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -475,10 +477,10 @@ index a1bc178165f3481c2b4e399f0284f4482ba246c1..48b0df2acccd0d406ba05aaeb6dfbfde
|
||||
public Map<String, Vector3f> getModelRotationValues() {
|
||||
return this.modelRotationValues;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
index 7183cd107218d36962803facb63cd6f384de8611..74ca2442008b0dea9f9762bbec8d6de1390f2582 100644
|
||||
index 4477f201ff02a5e0758af5431b7d9b7c5e11d642..07a5599a9370ba167e985006d74caa3c80288e28 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
|
||||
@@ -325,6 +325,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||
@@ -316,6 +316,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
|
||||
return this.dashCooldown;
|
||||
}
|
||||
|
||||
@@ -503,10 +505,10 @@ index 7183cd107218d36962803facb63cd6f384de8611..74ca2442008b0dea9f9762bbec8d6de1
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.CAMEL_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
index 41777079871eef2bb4d319f28c8f441d7f2607a1..24fb38499092d8cbee3818bf5c873a55465b1edb 100644
|
||||
index 12a137665f93d992094e86327a496057890d1018..59829fb7342696d29aa709d392f89bf263257fd3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
@@ -162,6 +162,44 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||
@@ -229,6 +229,44 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -551,17 +553,17 @@ index 41777079871eef2bb4d319f28c8f441d7f2607a1..24fb38499092d8cbee3818bf5c873a55
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HorseHasRider(this)); // Purpur
|
||||
@@ -1242,7 +1280,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||
@@ -1260,7 +1298,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||
entityData = new AgeableMob.AgeableMobGroupData(0.2F);
|
||||
}
|
||||
|
||||
- this.randomizeAttributes(world.getRandom());
|
||||
+ // this.randomizeAttributes(world.getRandom()); // Purpur - replaced by initAttributes()
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, (SpawnGroupData) entityData, entityNbt);
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, (SpawnGroupData) entityData);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
index 5242059484fb5f407a2da2b0c01a8feeaf1c3a64..f623586530e9e7783653b95c8c30d07d5eea896f 100644
|
||||
index 1febe8e173886d501e40331c12261701bd36b0f6..b47a72ffb8b947cea5d4bc6ee37b824c4161be31 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
|
||||
@@ -22,6 +22,21 @@ public class Donkey extends AbstractChestedHorse {
|
||||
@@ -587,10 +589,10 @@ index 5242059484fb5f407a2da2b0c01a8feeaf1c3a64..f623586530e9e7783653b95c8c30d07d
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.DONKEY_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
index 5efed70522657c2a02f869affc6755332082cf97..2971b868210ffb3390d19c7f8079fcc60f7d00b0 100644
|
||||
index 816c698a81a77f217a606468aa157bdaed779479..9ad0d3972d1970b11687da174a83e3a0a4180c0e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
|
||||
@@ -47,6 +47,21 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
@@ -51,6 +51,21 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -613,7 +615,7 @@ index 5efed70522657c2a02f869affc6755332082cf97..2971b868210ffb3390d19c7f8079fcc6
|
||||
protected void randomizeAttributes(RandomSource random) {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
index 1c6be506804b9622c4d0094814939f894ca857df..34d87ab749a62c5d897b7bc66b116a801324b6a7 100644
|
||||
index 3943ca63aaeecfb98c34ceef9b0c40e71de4e832..697895661826e4a1ecbdfd2c3a195b9d0ee7e00a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
@@ -124,6 +124,21 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -639,7 +641,7 @@ index 1c6be506804b9622c4d0094814939f894ca857df..34d87ab749a62c5d897b7bc66b116a80
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
index ae7bcfa608d8bdd2a2320618225294de0314ce53..abbeb305b2d09e9c4c02ade603adac5ceb34bdd0 100644
|
||||
index 1d18c983efad3ea309e7bc2a7c75d60d46ab80a7..68fe99ea6d683dd18171d35764b4cb319433f6e0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
|
||||
@@ -21,6 +21,21 @@ public class Mule extends AbstractChestedHorse {
|
||||
@@ -665,7 +667,7 @@ index ae7bcfa608d8bdd2a2320618225294de0314ce53..abbeb305b2d09e9c4c02ade603adac5c
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return SoundEvents.MULE_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
index 19d463cf5f57b2943431f1c5306fb51c19c7dc3a..d65d3c1275623a199d90497152519e45317a110f 100644
|
||||
index b3ce3c484c2e447e2d9fa52e1ccc30b2e4883923..6180f750ed159e35d20bbaefc57bdd7293c657ec 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
|
||||
@@ -49,6 +49,21 @@ public class SkeletonHorse extends AbstractHorse {
|
||||
@@ -691,7 +693,7 @@ index 19d463cf5f57b2943431f1c5306fb51c19c7dc3a..d65d3c1275623a199d90497152519e45
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0D).add(Attributes.MOVEMENT_SPEED, 0.20000000298023224D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
index c1d1321c75330231777adb4ff6e0ca604f3fab80..85e32d35cdfb7dd11b3c28146b9b71eae2b5c685 100644
|
||||
index 2abc4a5a9043d7c8643b27b7ba874d42bbdc04b7..af29ba1512bfda03718fb01ecff8d86b4e927611 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
|
||||
@@ -52,6 +52,21 @@ public class TraderLlama extends Llama {
|
||||
@@ -717,10 +719,10 @@ index c1d1321c75330231777adb4ff6e0ca604f3fab80..85e32d35cdfb7dd11b3c28146b9b71ea
|
||||
public boolean isTraderLlama() {
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
index c1fd9363ef67dc2641a6ad37f4a20dd8ce5ec085..52eb412401d6843778ab8c4530e8bb3123a83a0b 100644
|
||||
index 2cf47ea1cedc1cecfeb4d2bcebc0810a19f64022..d2b3859f9c69e6d73fa859db858d38dd41fa35cd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
|
||||
@@ -38,6 +38,21 @@ public class ZombieHorse extends AbstractHorse {
|
||||
@@ -45,6 +45,21 @@ public class ZombieHorse extends AbstractHorse {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -743,26 +745,26 @@ index c1fd9363ef67dc2641a6ad37f4a20dd8ce5ec085..52eb412401d6843778ab8c4530e8bb31
|
||||
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
index 7fb2c28b567c6c338a68bdc29d24cb652a4a15bf..074835d3e315eb78d318e81c5fd04e5e786e9127 100644
|
||||
index c6b6b47e8c268604ab0d1f3bb59c0b0b3a7a1d25..d63913cca12a008ceb4bffc97ba08b8d800102c3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
|
||||
@@ -108,6 +108,11 @@ public class Sniffer extends Animal {
|
||||
@@ -109,6 +109,11 @@ public class Sniffer extends Animal {
|
||||
public boolean isControllable() {
|
||||
return level().purpurConfig.snifferControllable;
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public void initAttributes() {
|
||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.snifferMaxHealth);
|
||||
+ }
|
||||
+
|
||||
// CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 3d4ecd05af1794b37102996305a2346b7c0a72e2..62ca0378469e74497bf256a58f55c2a73028d090 100644
|
||||
index 170038f2bfdfd01003b6661672a9f8ed266343e2..0a7f87ac09f9ef6ad69974090f0d6f437d232b11 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -187,6 +187,11 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -185,6 +185,11 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -775,10 +777,10 @@ index 3d4ecd05af1794b37102996305a2346b7c0a72e2..62ca0378469e74497bf256a58f55c2a7
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index 8fbfd134005c0813406fecbce8a918cd0376d03e..51ccbf3bd77bbcf77833b39fadc6c01fd28f2131 100644
|
||||
index 14f9ded1b44d05d69f1a9394fdacab5b145e4c45..0cc32342cf6c65466dd1e45f9097ca89b01036e4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -113,6 +113,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -116,6 +116,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
this.xpReward = 50;
|
||||
}
|
||||
|
||||
@@ -790,7 +792,7 @@ index 8fbfd134005c0813406fecbce8a918cd0376d03e..51ccbf3bd77bbcf77833b39fadc6c01f
|
||||
@Override
|
||||
protected PathNavigation createNavigation(Level world) {
|
||||
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
|
||||
@@ -429,7 +434,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -428,7 +433,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
|
||||
this.setInvulnerableTicks(i);
|
||||
if (this.tickCount % 10 == 0) {
|
||||
@@ -800,7 +802,7 @@ index 8fbfd134005c0813406fecbce8a918cd0376d03e..51ccbf3bd77bbcf77833b39fadc6c01f
|
||||
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
index b48bb11029e2726cde2e8f624b8c1ad159740e3a..cfd7d5caeb8bacc5ce314bd700cb21e98a9f667b 100644
|
||||
index 0e1aa9a00284ce43436b1290f9ebe243c4d09fdc..220deda05517fd200070f823ad7af075240bb623 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java
|
||||
@@ -74,6 +74,11 @@ public class Blaze extends Monster {
|
||||
@@ -816,10 +818,10 @@ index b48bb11029e2726cde2e8f624b8c1ad159740e3a..cfd7d5caeb8bacc5ce314bd700cb21e9
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
index 562faf0257388d9c22146a418f25716cef7471b8..c8bac8cb738ad96003a014b468681c43512ac4c4 100644
|
||||
index 504996c8309fcd11de1dd166dee12d7e7db8db56..562f73dd5e617c10382c50be86ce88f4de1a4fe1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java
|
||||
@@ -46,6 +46,11 @@ public class CaveSpider extends Spider {
|
||||
@@ -43,6 +43,11 @@ public class CaveSpider extends Spider {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -832,10 +834,10 @@ index 562faf0257388d9c22146a418f25716cef7471b8..c8bac8cb738ad96003a014b468681c43
|
||||
public boolean doHurtTarget(Entity target) {
|
||||
if (super.doHurtTarget(target)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index 30b4c8513e97463ce1a96775b1c22a1d95bd6fbd..e6542240c317be28a7b536a736f7ccdc9f050dca 100644
|
||||
index 6e812033323b1d1ace9023d57f0405e0d546c337..624ae0e10ef9f51d484e45ec9a15e4a120bf2af2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -251,6 +251,11 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -252,6 +252,11 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -848,10 +850,10 @@ index 30b4c8513e97463ce1a96775b1c22a1d95bd6fbd..e6542240c317be28a7b536a736f7ccdc
|
||||
protected SoundEvent getHurtSound(DamageSource source) {
|
||||
return SoundEvents.CREEPER_HURT;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
index 02141c89708a60c396dc89bc202bc2316a7e419f..0d4e1c734491028dac0084bd26ed9a268fbb6751 100644
|
||||
index 2b93338db154e6c0c3c8814adabaab761f08af08..02bceb31c517b94653573380ed29d9401a6b9ce8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
|
||||
@@ -85,6 +85,16 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
@@ -88,6 +88,16 @@ public class Drowned extends Zombie implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -869,10 +871,10 @@ index 02141c89708a60c396dc89bc202bc2316a7e419f..0d4e1c734491028dac0084bd26ed9a26
|
||||
protected void addBehaviourGoals() {
|
||||
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0D));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
index 865f2bf27674f46cbf87cf3433915701273473c3..baa41e05f66457a6b4638915a1deab775665f01f 100644
|
||||
index 430899602940aa04c21d45ae94bcc506352389cf..6152117a3e13252068e16945b4346a73a3090dda 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
|
||||
@@ -48,6 +48,11 @@ public class ElderGuardian extends Guardian {
|
||||
@@ -45,6 +45,11 @@ public class ElderGuardian extends Guardian {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -885,10 +887,10 @@ index 865f2bf27674f46cbf87cf3433915701273473c3..baa41e05f66457a6b4638915a1deab77
|
||||
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index 01dd5347bc8fa25b9b1f6cb746c25ca68eda95bb..d973adad5411b390464d7a654d8e8c1dcf69729c 100644
|
||||
index 0c1e3b00bdc1e6b033e6e9e37400a475cee2500e..3abfc4f449552ec60a1f7c4e3faa9fd0ebfdc300 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -115,6 +115,11 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -110,6 +110,11 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -901,10 +903,10 @@ index 01dd5347bc8fa25b9b1f6cb746c25ca68eda95bb..d973adad5411b390464d7a654d8e8c1d
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
index 75de003b4f7556cd9c5137fe324b66348835141a..2cbc2f158b2bb65bfbf6b122a5b6e000252e51ce 100644
|
||||
index ee88933c7baba3bc82c6dc9d52291d5f9fc0f25d..52e2588b32b56b51bdbbdf63a290b2a4a4b02c13 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
|
||||
@@ -60,6 +60,11 @@ public class Endermite extends Monster {
|
||||
@@ -55,6 +55,11 @@ public class Endermite extends Monster {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -917,10 +919,10 @@ index 75de003b4f7556cd9c5137fe324b66348835141a..2cbc2f158b2bb65bfbf6b122a5b6e000
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
index 937e5d59743f1e45e426ac34f301884f1ba6e197..30a04ea1f66fe5dbbae27a48764e4bd0f66bf0b1 100644
|
||||
index 0d1931398f1f6bad941ff133a0d872ffabb00bd3..8f0c685790aa59b7f2352c3bac6ede444d0ede22 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java
|
||||
@@ -68,6 +68,11 @@ public class Evoker extends SpellcasterIllager {
|
||||
@@ -69,6 +69,11 @@ public class Evoker extends SpellcasterIllager {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -933,10 +935,10 @@ index 937e5d59743f1e45e426ac34f301884f1ba6e197..30a04ea1f66fe5dbbae27a48764e4bd0
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
index 3f886ffb0aa8591e4ca8324301ae9a8eeac57ab4..edd3b7a855165eb090edb9ad95d36cdb649d231e 100644
|
||||
index 862ad83b536fd0b5eb38ac0f2940cc46aed1fba2..4bad5bdce2df5f5233465b30bcd3121b1dff0874 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java
|
||||
@@ -133,6 +133,11 @@ public class Ghast extends FlyingMob implements Enemy {
|
||||
@@ -131,6 +131,11 @@ public class Ghast extends FlyingMob implements Enemy {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -946,16 +948,17 @@ index 3f886ffb0aa8591e4ca8324301ae9a8eeac57ab4..edd3b7a855165eb090edb9ad95d36cdb
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 9f8c47bcaace9bd4cb276d0dc252f3d0f259a3af..d3876553949821323953b7113c7bd4f83f71a18c 100644
|
||||
index 868e8383a890d76b4cfeac8b77b06e8f58d0a6dc..9602e59cbebeedc85ea75d2a41d3e74f0ff45b46 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -38,6 +38,13 @@ public class Giant extends Monster {
|
||||
@@ -33,6 +33,14 @@ public class Giant extends Monster {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ protected void initAttributes() {
|
||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.giantMaxHealth);
|
||||
@@ -963,14 +966,14 @@ index 9f8c47bcaace9bd4cb276d0dc252f3d0f259a3af..d3876553949821323953b7113c7bd4f8
|
||||
+ this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.giantAttackDamage);
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
return 10.440001F;
|
||||
// Purpur end
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 159821730981b78a973e58e7a69e5d3ae9abd44f..52e2900f57979d25a62fbd23e08f5378cb6c0611 100644
|
||||
index 9a1b1a1b0b6d59d599a2ab87f047121f47cf2bec..7fa4e9761c6aad83848bf5e80a213689d728921d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -94,6 +94,11 @@ public class Guardian extends Monster {
|
||||
@@ -90,6 +90,11 @@ public class Guardian extends Monster {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -983,10 +986,10 @@ index 159821730981b78a973e58e7a69e5d3ae9abd44f..52e2900f57979d25a62fbd23e08f5378
|
||||
protected void registerGoals() {
|
||||
MoveTowardsRestrictionGoal pathfindergoalmovetowardsrestriction = new MoveTowardsRestrictionGoal(this, 1.0D);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
index bfc6dcafe79fa3bb6e450a23e91a772b41488561..4ba01ebfc93d10cd0077e32c30349afda2093fb2 100644
|
||||
index 20ea3187626a667815245974df88189f7d6ffc76..805bfee8b061445de5b5d8aeb13c792178e25f7b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
|
||||
@@ -41,6 +41,16 @@ public class Husk extends Zombie {
|
||||
@@ -39,6 +39,16 @@ public class Husk extends Zombie {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1004,10 +1007,10 @@ index bfc6dcafe79fa3bb6e450a23e91a772b41488561..4ba01ebfc93d10cd0077e32c30349afd
|
||||
return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (MobSpawnType.isSpawner(spawnReason) || world.canSeeSky(pos));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
index 4d50d10016a3b574d67bdfec5aee910cede8ffc3..c00530db0eff302c14dd9c52d1d988cbdd93e5a1 100644
|
||||
index bef63bb69ea81298a1021eadd6c260943e18eba7..c680e1efb73a6387aad6ecdab94f690c12451a32 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java
|
||||
@@ -76,6 +76,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
@@ -73,6 +73,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1022,10 +1025,10 @@ index 4d50d10016a3b574d67bdfec5aee910cede8ffc3..c00530db0eff302c14dd9c52d1d988cb
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
index b60e01a6cfce467f2e0a95a52f5ad7379d9fe574..79264a538b64a473b5a50aa87011f1f6db617525 100644
|
||||
index 6a03a5f1c209d248207b6835ba1d7c0f59dec557..61cd97bc17802d3ab30999fc1f2b91e8b00652b2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -47,6 +47,26 @@ public class MagmaCube extends Slime {
|
||||
@@ -46,6 +46,26 @@ public class MagmaCube extends Slime {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1053,10 +1056,10 @@ index b60e01a6cfce467f2e0a95a52f5ad7379d9fe574..79264a538b64a473b5a50aa87011f1f6
|
||||
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
index 98ced015ceb4f68364ff5ee6f7ee1a69251dbb04..6819acda60e783ee57dd8b9b5d27bc1e105425c3 100644
|
||||
index 03c873b830f45d848af076ac7921fc4d019f69c8..01e8eaecec61e664838b5d7f18a9c3e730f00ddf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
|
||||
@@ -151,7 +151,10 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
@@ -149,7 +149,10 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
|
||||
private void updatePhantomSizeInfo() {
|
||||
this.refreshDimensions();
|
||||
@@ -1068,7 +1071,7 @@ index 98ced015ceb4f68364ff5ee6f7ee1a69251dbb04..6819acda60e783ee57dd8b9b5d27bc1e
|
||||
}
|
||||
|
||||
public int getPhantomSize() {
|
||||
@@ -181,6 +184,21 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
@@ -174,6 +177,21 @@ public class Phantom extends FlyingMob implements Enemy {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1091,10 +1094,10 @@ index 98ced015ceb4f68364ff5ee6f7ee1a69251dbb04..6819acda60e783ee57dd8b9b5d27bc1e
|
||||
public void tick() {
|
||||
super.tick();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
index 3eca357a82eebedc56237a03503017a17f17d3a6..c4af35ac6c8ac6e76adb061bf628f6cca2e7199c 100644
|
||||
index 6bfe582390dcb6111dcaf8325bd2773b9f5fd6a9..8c06e648df453fdd4eea0aa4843fada9b6375f81 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java
|
||||
@@ -83,6 +83,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
@@ -75,6 +75,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1107,10 +1110,10 @@ index 3eca357a82eebedc56237a03503017a17f17d3a6..c4af35ac6c8ac6e76adb061bf628f6cc
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
index 73220bd6989855ac82420219c841421612cb3f11..226b44ba4cd3a08562c8cb0d79c1d880cfac34ec 100644
|
||||
index 1248a48c0146258d14efcaa805a82ce1a79c623d..32d547a4430a8f524a7fc0bd1aa063bbebfaeb7f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
|
||||
@@ -94,6 +94,11 @@ public class Ravager extends Raider {
|
||||
@@ -91,6 +91,11 @@ public class Ravager extends Raider {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1123,7 +1126,7 @@ index 73220bd6989855ac82420219c841421612cb3f11..226b44ba4cd3a08562c8cb0d79c1d880
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
index a695ac9b9e4c3e423d74d082e24928581333947e..2d8d88a3552516becdd7adb11b7706fc9bddbf96 100644
|
||||
index 78433d0b7624019018012c55e8dd6fec029f8cd1..1793c5f4e33fbab9d64d81bb1767b0e9b248106f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
|
||||
@@ -114,6 +114,11 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
|
||||
@@ -1139,10 +1142,10 @@ index a695ac9b9e4c3e423d74d082e24928581333947e..2d8d88a3552516becdd7adb11b7706fc
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
index e884e44139e2c7a05f5769192c3f6c7632eeb730..e81c162f7a2061180f81754de341b2c33da76a0d 100644
|
||||
index 97cab38a47e302f40ca69ef4eb8f7dcb11eccf35..75f82922260b2c0666021e7ed42dfde401e1a9d6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
||||
@@ -65,6 +65,11 @@ public class Silverfish extends Monster {
|
||||
@@ -60,6 +60,11 @@ public class Silverfish extends Monster {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1155,7 +1158,7 @@ index e884e44139e2c7a05f5769192c3f6c7632eeb730..e81c162f7a2061180f81754de341b2c3
|
||||
protected void registerGoals() {
|
||||
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
index 3568c4b7ecfa250bbeb1799685b487df53537919..23b385205fe8d1245e65a42b8a356f0127ca2f78 100644
|
||||
index 2f4f38fe7b7640b6658884b826d7f7a335370bd3..1f751a9a079d59ee54afb43ec87284f0de8fa07a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
|
||||
@@ -43,6 +43,11 @@ public class Skeleton extends AbstractSkeleton {
|
||||
@@ -1168,13 +1171,13 @@ index 3568c4b7ecfa250bbeb1799685b487df53537919..23b385205fe8d1245e65a42b8a356f01
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
index bb1d0cae9d51a64e0752a59218dc71da73330139..fdfb0d1582e377e59e808e4388d660579377a286 100644
|
||||
index 2c73e80d916529cb0433846a2e57bc845bf7f3d4..8deddd8b543a30e295e6d55880d5051a63fef87b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
@@ -102,6 +102,37 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -101,6 +101,37 @@ public class Slime extends Mob implements Enemy {
|
||||
}
|
||||
return true; // do not jump() in wasd controller, let vanilla controller handle
|
||||
}
|
||||
@@ -1212,7 +1215,7 @@ index bb1d0cae9d51a64e0752a59218dc71da73330139..fdfb0d1582e377e59e808e4388d66057
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
@@ -136,9 +167,9 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -135,9 +166,9 @@ public class Slime extends Mob implements Enemy {
|
||||
this.entityData.set(Slime.ID_SIZE, j);
|
||||
this.reapplyPosition();
|
||||
this.refreshDimensions();
|
||||
@@ -1225,10 +1228,10 @@ index bb1d0cae9d51a64e0752a59218dc71da73330139..fdfb0d1582e377e59e808e4388d66057
|
||||
this.setHealth(this.getMaxHealth());
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
index dd1a6fc505ce2214903dbe703bcabe7d264fbe90..3f67ab84485737291aec531441d88b74f7f7522c 100644
|
||||
index 87f63373ccef3de9ce77a92933ff332be4fd6305..92276f6c015e60783f23f433466f50c918057f61 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
@@ -70,6 +70,11 @@ public class Spider extends Monster {
|
||||
@@ -68,6 +68,11 @@ public class Spider extends Monster {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1257,10 +1260,10 @@ index 44006bcb7d70661a6990e3fc4375dd6da34517e0..e1327ea96fe394b1c27dbe88c4959625
|
||||
BlockPos blockPos = pos;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
index bfd69abf24d788b5e539498d56ade57fcb78f580..9b853fd05a3a851cb08d7f849b51f2b220780982 100644
|
||||
index 7e5ad9d52db7a39be60e0b2f24e13e8ed82785e1..4abbeaf9f88511f37bd14c17dbd9a107648a5534 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
|
||||
@@ -117,6 +117,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -114,6 +114,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1273,26 +1276,26 @@ index bfd69abf24d788b5e539498d56ade57fcb78f580..9b853fd05a3a851cb08d7f849b51f2b2
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
index b676f6c814d63e950af192a56ab5a4bf5f14a7d6..0dae7c87a9f61a7d8e493537e0aada78370bb334 100644
|
||||
index 98c9d7080595a5d9ffa3d65a153780b68aec0e47..ca6c688b31240863dfc5095c7b6187583cf2f6ce 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java
|
||||
@@ -107,6 +107,11 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
@@ -102,6 +102,11 @@ public class Vex extends Monster implements TraceableEntity {
|
||||
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
|
||||
return false; // no fall damage please
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
+
|
||||
+ @Override
|
||||
+ public void initAttributes() {
|
||||
+ this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.vexMaxHealth);
|
||||
+ }
|
||||
+
|
||||
// Purpur end
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
return dimensions.height - 0.28125F;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
index 6301985e0906a06f41030f7a90bc862907caf9c5..c5f21eeec60e77167970ed68eec0348912a62e0e 100644
|
||||
index c6d12c939cd3fbd9facf88cdc0c7c51744089484..e270da29fdab5060b6a936bba67c433a78c54b5b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
|
||||
@@ -73,6 +73,11 @@ public class Vindicator extends AbstractIllager {
|
||||
@@ -67,6 +67,11 @@ public class Vindicator extends AbstractIllager {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1305,10 +1308,10 @@ index 6301985e0906a06f41030f7a90bc862907caf9c5..c5f21eeec60e77167970ed68eec03489
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
index 881e026f86916cf3ec5bc3c30f5c0f3cee4e5e1b..0d33b8362f94718d63d86abce05e0b0efc21e653 100644
|
||||
index b5f44495f0a384c8a7d8d96e3a0f16999fba86fe..d99c52b4f0326421f90162d4894044394b3c49c4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java
|
||||
@@ -76,6 +76,11 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
@@ -72,6 +72,11 @@ public class Witch extends Raider implements RangedAttackMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1321,10 +1324,10 @@ index 881e026f86916cf3ec5bc3c30f5c0f3cee4e5e1b..0d33b8362f94718d63d86abce05e0b0e
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
index 4235684e533e744bb1eb90a5cc69001e43782bc2..afad65b86e762187d0779cfee2b0b1089066d53f 100644
|
||||
index 355ed17da77256c84d8ba7d4d99b5c73d729a48d..9fd9b95cbec010dafec261b5923938c5b39cd1e6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
|
||||
@@ -52,6 +52,11 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
@@ -49,6 +49,11 @@ public class WitherSkeleton extends AbstractSkeleton {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1337,10 +1340,10 @@ index 4235684e533e744bb1eb90a5cc69001e43782bc2..afad65b86e762187d0779cfee2b0b108
|
||||
protected void registerGoals() {
|
||||
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
index f34803f4bebf2eafba483628b20784c2134002fa..62d0c4dcb2992b665e473726a09d3fa457420395 100644
|
||||
index 2cb65bc3e2a2f990f4036f4f0418d9cd5226381e..698076b0e958aadf9736d7753df64a73dd3c17cd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java
|
||||
@@ -99,6 +99,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
|
||||
@@ -97,6 +97,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1353,10 +1356,10 @@ index f34803f4bebf2eafba483628b20784c2134002fa..62d0c4dcb2992b665e473726a09d3fa4
|
||||
protected Brain.Provider<Zoglin> brainProvider() {
|
||||
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
index 3be3e46408b2d43f2cbb27b516be8c466ab0ed79..2e956c5a76573c1966c9d927bd4f7254eee4af4d 100644
|
||||
index 7c78b243164a517818565845b1a6c7d40c8839d8..9af1c4b794ddaf8640076f172cf0317acad6bcb2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
@@ -124,6 +124,11 @@ public class Zombie extends Monster {
|
||||
@@ -121,6 +121,11 @@ public class Zombie extends Monster {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1368,7 +1371,7 @@ index 3be3e46408b2d43f2cbb27b516be8c466ab0ed79..2e956c5a76573c1966c9d927bd4f7254
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
@@ -607,7 +612,7 @@ public class Zombie extends Monster {
|
||||
@@ -596,7 +601,7 @@ public class Zombie extends Monster {
|
||||
}
|
||||
|
||||
protected void randomizeReinforcementsChance() {
|
||||
@@ -1378,10 +1381,10 @@ index 3be3e46408b2d43f2cbb27b516be8c466ab0ed79..2e956c5a76573c1966c9d927bd4f7254
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
index ba391ae0f8c361fb0ffbe0b65f12a008c21e4676..9fb70aabb68d5d14ab15420d8677e46c399912b2 100644
|
||||
index cc3d9f47ef6d1efa589c8bed5c51ed9e61d7c07d..8e7f0f2069c3382f3a7b08b80f829398e62377f7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
||||
@@ -99,6 +99,16 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
@@ -97,6 +97,16 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1396,13 +1399,13 @@ index ba391ae0f8c361fb0ffbe0b65f12a008c21e4676..9fb70aabb68d5d14ab15420d8677e46c
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
index 2121de85765d535effb3ef4e0c4a873238dd7576..9d1d8b5a3f2bac29f8058f68e2ded4d790a50321 100644
|
||||
index 2ff0ce04ce210b77c555f59967182ed4dd3fe9aa..138f3f6a9b0754d54e5f8000962bb52b224f677d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
@@ -81,6 +81,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -79,6 +79,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1414,7 +1417,7 @@ index 2121de85765d535effb3ef4e0c4a873238dd7576..9d1d8b5a3f2bac29f8058f68e2ded4d7
|
||||
@Override
|
||||
public void setPersistentAngerTarget(@Nullable UUID angryAt) {
|
||||
this.persistentAngerTarget = angryAt;
|
||||
@@ -263,7 +268,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
@@ -261,7 +266,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
|
||||
|
||||
@Override
|
||||
protected void randomizeReinforcementsChance() {
|
||||
@@ -1424,10 +1427,10 @@ index 2121de85765d535effb3ef4e0c4a873238dd7576..9d1d8b5a3f2bac29f8058f68e2ded4d7
|
||||
|
||||
@Nullable
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index 42e56f0d6d1c5e913f9c9c4e0c53e4ca187967f1..a45df0aeae94f408a24f55bc15c71627c3c95bc1 100644
|
||||
index 6e86e0597af66bad8f2e97661b588e950b2679ba..3bfc073fb142e3446044a42c33be6c30587cc3c4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -109,6 +109,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -107,6 +107,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1440,10 +1443,10 @@ index 42e56f0d6d1c5e913f9c9c4e0c53e4ca187967f1..a45df0aeae94f408a24f55bc15c71627
|
||||
public boolean canBeLeashed(Player player) {
|
||||
return !this.isLeashed();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 015bb57c73c7b38622329fc3001b6369fa183cd1..b5e6a48192592e9bc5a7c0a2775e5d78f06cd46a 100644
|
||||
index 6632cab4ed43bbfd10b4d8f3b2c447a35eba735e..06e0f737615c90bd733a89a731156598ccfe447f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -113,6 +113,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -111,6 +111,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1456,10 +1459,10 @@ index 015bb57c73c7b38622329fc3001b6369fa183cd1..b5e6a48192592e9bc5a7c0a2775e5d78
|
||||
public void addAdditionalSaveData(CompoundTag nbt) {
|
||||
super.addAdditionalSaveData(nbt);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
index 0ec07be03e871caf5a30748f540cac8ce50f1f4b..dc70d4819fbc2aa5b6a026f2aff2f52bc836901c 100644
|
||||
index 17e2457bc83e7ee4402c10ee7d2ef5aa36901565..362f3fddd8090799278f4b4e58c5af5de00315f2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
|
||||
@@ -80,6 +80,11 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
@@ -79,6 +79,11 @@ public class PiglinBrute extends AbstractPiglin {
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1472,10 +1475,10 @@ index 0ec07be03e871caf5a30748f540cac8ce50f1f4b..dc70d4819fbc2aa5b6a026f2aff2f52b
|
||||
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 8e3e9bfe614057450ec771f72c9b1d7ea061d66e..8a864f236048e0c2b120f698439af652a8bcb0a8 100644
|
||||
index 980f48b546f0da5696c110357ea42352a48fbd42..ff86c7d4878e43fc9d375b9b60213a2271b92cff 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -180,6 +180,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -178,6 +178,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -1488,7 +1491,7 @@ index 8e3e9bfe614057450ec771f72c9b1d7ea061d66e..8a864f236048e0c2b120f698439af652
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 80b9c2043f2a84dc44b082a9c97a7b5dbbb93dc2..80a157aa57fe5e6725b6e06a93b841d66cf62455 100644
|
||||
index 6bdf3d1e3652a661282d61f1dc2bfc2712339953..ac3cca0db4478841f91d966bd49ca4e5b5e91229 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -88,6 +88,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 6886f5808ffaaed06dcae122f7cba6a12ad563af..f8a6d48200dae42cb73ed4f7eb52f957e7530e8c 100644
|
||||
index 2d6b6795703431939005aa09d1ed590c3f755163..f10dcc0debcdd2077ee53cb1aefca8abd12f3ecd 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1189,6 +1189,27 @@ public abstract class PlayerList {
|
||||
@@ -1188,6 +1188,27 @@ public abstract class PlayerList {
|
||||
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
@@ -37,11 +37,11 @@ index 6886f5808ffaaed06dcae122f7cba6a12ad563af..f8a6d48200dae42cb73ed4f7eb52f957
|
||||
|
||||
public boolean isWhiteListed(GameProfile profile) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 8a6acc19e9f3afb778420495a5ed41ce78227f1a..cad2ff51d79d584312a03f35266774b297883c0c 100644
|
||||
index 90e44c7281935bc7ceb3b220bbcd73187fed44fb..0641e448e0e98694976b820c2e9c4868f2b76909 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
|
||||
public float hurtDir; // Paper - protected -> public
|
||||
@@ -195,6 +195,7 @@ public abstract class Player extends LivingEntity {
|
||||
public boolean ignoreFallDamageFromCurrentImpulse;
|
||||
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
|
||||
+ public int sixRowEnderchestSlotCount = -1; // Purpur
|
||||
@@ -84,10 +84,10 @@ index 0dbfd23bbfc6ad203f048142f8c90ef741849fe1..9a80427d2bb470b6b1638e59aba57216
|
||||
return new ChestMenu(MenuType.GENERIC_9x6, syncId, playerInventory, inventory, 6);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java b/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
index 4703f23316f82a1a942907b46d2d6dcb7d70ec37..162798f57a05b78121fa6c4fadf5adee80fbe221 100644
|
||||
index a15d5ff872dbd77f3c3145e0328f3d02e431ff8c..1dcf36d502990d32fc4cd3ea69c3ea334baed69a 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java
|
||||
@@ -30,11 +30,18 @@ public class PlayerEnderChestContainer extends SimpleContainer {
|
||||
@@ -31,11 +31,18 @@ public class PlayerEnderChestContainer extends SimpleContainer {
|
||||
}
|
||||
|
||||
public PlayerEnderChestContainer(Player owner) {
|
||||
@@ -108,19 +108,19 @@ index 4703f23316f82a1a942907b46d2d6dcb7d70ec37..162798f57a05b78121fa6c4fadf5adee
|
||||
this.activeChest = blockEntity;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
index 384dbae11ea1c48bef82bfa30aa9867134fac4cf..506965665e16b14dd0873a4b0892d86ddbb3f7f6 100644
|
||||
index 5f9858ef8d0ec1a74d469ab4426eb1db068873fd..d7ef772444b301d0a3f167679027195e4150b064 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java
|
||||
@@ -92,7 +92,7 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
@@ -91,7 +91,7 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
EnderChestBlockEntity enderChestBlockEntity = (EnderChestBlockEntity)blockEntity;
|
||||
playerEnderChestContainer.setActiveChest(enderChestBlockEntity);
|
||||
player.openMenu(
|
||||
- new SimpleMenuProvider((syncId, inventory, playerx) -> ChestMenu.threeRows(syncId, inventory, playerEnderChestContainer), CONTAINER_TITLE)
|
||||
+ new SimpleMenuProvider((syncId, inventory, playerx) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(syncId, inventory, player, playerEnderChestContainer) : ChestMenu.threeRows(syncId, inventory, playerEnderChestContainer), CONTAINER_TITLE) // Purpur
|
||||
- new SimpleMenuProvider((i, inventory, playerx) -> ChestMenu.threeRows(i, inventory, playerEnderChestContainer), CONTAINER_TITLE)
|
||||
+ new SimpleMenuProvider((i, inventory, playerx) -> org.purpurmc.purpur.PurpurConfig.enderChestSixRows ? getEnderChestSixRows(i, inventory, player, playerEnderChestContainer) : ChestMenu.threeRows(i, inventory, playerEnderChestContainer), CONTAINER_TITLE) // Purpur
|
||||
);
|
||||
player.awardStat(Stats.OPEN_ENDERCHEST);
|
||||
PiglinAi.angerNearbyPiglins(player, true);
|
||||
@@ -103,6 +103,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
@@ -102,6 +102,35 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,10 +157,10 @@ index 384dbae11ea1c48bef82bfa30aa9867134fac4cf..506965665e16b14dd0873a4b0892d86d
|
||||
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
|
||||
return new EnderChestBlockEntity(pos, state);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
index 416aa989ebb18a8741cc9d605a1180ab830f6643..e38a0adf5463c48311ad08b8d2e5b5c2d989a3b5 100644
|
||||
index 6186e55014bbb9d5bedaa0e9d196879c55339d42..f4f11292d6d00f4a7c65e3e2a157bba595f70889 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java
|
||||
@@ -67,7 +67,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
@@ -68,7 +68,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
public BarrelBlockEntity(BlockPos pos, BlockState state) {
|
||||
super(BlockEntityType.BARREL, pos, state);
|
||||
@@ -178,7 +178,7 @@ index 416aa989ebb18a8741cc9d605a1180ab830f6643..e38a0adf5463c48311ad08b8d2e5b5c2
|
||||
this.openersCounter = new ContainerOpenersCounter() {
|
||||
@Override
|
||||
protected void onOpen(Level world, BlockPos pos, BlockState state) {
|
||||
@@ -118,7 +127,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
@@ -119,7 +128,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
@Override
|
||||
public int getContainerSize() {
|
||||
@@ -196,7 +196,7 @@ index 416aa989ebb18a8741cc9d605a1180ab830f6643..e38a0adf5463c48311ad08b8d2e5b5c2
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,7 +156,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
@@ -139,7 +157,16 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity {
|
||||
|
||||
@Override
|
||||
protected AbstractContainerMenu createMenu(int syncId, Inventory playerInventory) {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Llama API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
index 9ae94ae4ea74ff0fa7e22ff8527925c8b6b5a700..50622e300950b017b41a6f85643c8827a0113225 100644
|
||||
index df695b444fa2a993d381e2f197182c3e91a68502..eb0faf58fa1a408f294fc62120b140def97f998d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/LlamaFollowCaravanGoal.java
|
||||
@@ -22,6 +22,7 @@ public class LlamaFollowCaravanGoal extends Goal {
|
||||
@@ -25,7 +25,7 @@ index 9ae94ae4ea74ff0fa7e22ff8527925c8b6b5a700..50622e300950b017b41a6f85643c8827
|
||||
double d = this.llama.distanceToSqr(this.llama.getCaravanHead());
|
||||
if (d > 676.0) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
index 34d87ab749a62c5d897b7bc66b116a801324b6a7..b9b66f22ef39cb38bfb4dcbf4e73a0a7da596660 100644
|
||||
index 697895661826e4a1ecbdfd2c3a195b9d0ee7e00a..05614fb50a5509331ac15bb819e827365a4cefcf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
|
||||
@@ -75,6 +75,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -36,25 +36,23 @@ index 34d87ab749a62c5d897b7bc66b116a801324b6a7..b9b66f22ef39cb38bfb4dcbf4e73a0a7
|
||||
|
||||
public Llama(EntityType<? extends Llama> type, Level world) {
|
||||
super(type, world);
|
||||
@@ -170,7 +171,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
if (!this.inventory.getItem(1).isEmpty()) {
|
||||
nbt.put("DecorItem", this.inventory.getItem(1).save(new CompoundTag()));
|
||||
}
|
||||
-
|
||||
@@ -167,6 +168,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
super.addAdditionalSaveData(nbt);
|
||||
nbt.putInt("Variant", this.getVariant().id);
|
||||
nbt.putInt("Strength", this.getStrength());
|
||||
+ nbt.putBoolean("Purpur.ShouldJoinCaravan", shouldJoinCaravan); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -181,7 +182,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
if (nbt.contains("DecorItem", 10)) {
|
||||
this.inventory.setItem(1, ItemStack.of(nbt.getCompound("DecorItem")));
|
||||
}
|
||||
-
|
||||
@@ -174,6 +176,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
this.setStrength(nbt.getInt("Strength"));
|
||||
super.readAdditionalSaveData(nbt);
|
||||
this.setVariant(Llama.Variant.byId(nbt.getInt("Variant")));
|
||||
+ if (nbt.contains("Purpur.ShouldJoinCaravan")) this.shouldJoinCaravan = nbt.getBoolean("Purpur.ShouldJoinCaravan"); // Purpur
|
||||
this.updateContainerEquipment();
|
||||
}
|
||||
|
||||
@@ -500,6 +501,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@Override
|
||||
@@ -460,6 +463,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
|
||||
public void leaveCaravan() {
|
||||
if (this.caravanHead != null) {
|
||||
@@ -62,7 +60,7 @@ index 34d87ab749a62c5d897b7bc66b116a801324b6a7..b9b66f22ef39cb38bfb4dcbf4e73a0a7
|
||||
this.caravanHead.caravanTail = null;
|
||||
}
|
||||
|
||||
@@ -507,6 +509,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
@@ -467,6 +471,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
|
||||
}
|
||||
|
||||
public void joinCaravan(Llama llama) {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index afca9734927fd003e249972439494c561f0c0966..c0c7aca4bc56b59dc0a450bd370cb3c0104c78e6 100644
|
||||
index 2820333cbcd2cb972c4408cb0d9cc1be37a844cf..bc6a5de72d52627b3ceca4b52b95e12ceddf1247 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2234,8 +2234,68 @@ public class ServerPlayer extends Player {
|
||||
@@ -2326,8 +2326,68 @@ public class ServerPlayer extends Player {
|
||||
|
||||
public void resetLastActionTime() {
|
||||
this.lastActionTime = Util.getMillis();
|
||||
@@ -78,10 +78,10 @@ index afca9734927fd003e249972439494c561f0c0966..c0c7aca4bc56b59dc0a450bd370cb3c0
|
||||
return this.stats;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index ccf2ab27e73903ee4ae5e60838d694ed4ccad79c..cb5fc10f7ca81f608cdbd5a3f2554c3163f88fd4 100644
|
||||
index c0abcc3db4a392163dd97ff696c39c18d0ba08a0..eb7b15a234eaf64b399fe2572d5e75dce3437b1a 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -324,6 +324,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -332,6 +332,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
private boolean justTeleported = false;
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -102,7 +102,7 @@ index ccf2ab27e73903ee4ae5e60838d694ed4ccad79c..cb5fc10f7ca81f608cdbd5a3f2554c31
|
||||
@Override
|
||||
public void tick() {
|
||||
if (this.ackBlockChangesUpTo > -1) {
|
||||
@@ -391,6 +405,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -399,6 +413,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
}
|
||||
|
||||
if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) this.server.getPlayerIdleTimeout() * 1000L * 60L && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits
|
||||
@@ -115,7 +115,7 @@ index ccf2ab27e73903ee4ae5e60838d694ed4ccad79c..cb5fc10f7ca81f608cdbd5a3f2554c31
|
||||
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
|
||||
this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause
|
||||
}
|
||||
@@ -638,6 +658,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -658,6 +678,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.lastYaw = to.getYaw();
|
||||
this.lastPitch = to.getPitch();
|
||||
|
||||
@@ -124,16 +124,16 @@ index ccf2ab27e73903ee4ae5e60838d694ed4ccad79c..cb5fc10f7ca81f608cdbd5a3f2554c31
|
||||
Location oldTo = to.clone();
|
||||
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
|
||||
this.cserver.getPluginManager().callEvent(event);
|
||||
@@ -1505,7 +1527,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
if (!event.isAllowed()) {
|
||||
@@ -1494,7 +1516,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
movedWrongly = true;
|
||||
if (event.getLogWarning())
|
||||
// Paper end
|
||||
- ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!", this.player.getName().getString());
|
||||
+ ServerGamePacketListenerImpl.LOGGER.warn("{} moved wrongly!, ({})", this.player.getName().getString(), d11); // Purpur
|
||||
}
|
||||
} // Paper
|
||||
}
|
||||
|
||||
@@ -1572,6 +1594,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1562,6 +1584,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.lastYaw = to.getYaw();
|
||||
this.lastPitch = to.getPitch();
|
||||
|
||||
@@ -177,7 +177,7 @@ index d8cc5614502db7025349e085381b6b32ad32296a..f1b9e83206cc67e6ef29ebe088351b0a
|
||||
private EntitySelector() {}
|
||||
// Paper start - Affects Spawning API
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||
index 28cff997a1b263784e245f692adbff2a888a2d53..13b8141bdb2a1663431be645eb091f9e7638f3d0 100644
|
||||
index d2f0c3b26d4beedb49d86e0242d843590d469d02..7463eefb7d09ea55fe8780210e7e967c2fe7896d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||
@@ -64,6 +64,10 @@ public class TargetingConditions {
|
||||
@@ -192,10 +192,10 @@ index 28cff997a1b263784e245f692adbff2a888a2d53..13b8141bdb2a1663431be645eb091f9e
|
||||
if (baseEntity == null) {
|
||||
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index cad2ff51d79d584312a03f35266774b297883c0c..97805659af862213e9217c408519563de2be5b35 100644
|
||||
index 0641e448e0e98694976b820c2e9c4868f2b76909..d5383e9cbbee2f9d4223319ae38abed41a13cfb3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -201,6 +201,13 @@ public abstract class Player extends LivingEntity {
|
||||
public boolean fauxSleeping;
|
||||
public int oldLevel = -1;
|
||||
|
||||
@@ -223,10 +223,10 @@ index ea0aee88c7d901034427db201c1b2430f8a1d522..1f28bfb435c1e4d97da713f96c452aba
|
||||
if (range < 0.0 || d < range * range) {
|
||||
return true;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 5da7b468af3dd19491f38140f303e55b7cab21db..8fec2e517cc57940348f4bee33212a9aae34b102 100644
|
||||
index ee7e484a4dd694f36ab151402bec4ca15dea953c..33f229c13b3b77f967d81e9d4453e6afa9157fd9 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -489,10 +489,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -565,10 +565,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public void setPlayerListName(String name) {
|
||||
@@ -243,7 +243,7 @@ index 5da7b468af3dd19491f38140f303e55b7cab21db..8fec2e517cc57940348f4bee33212a9a
|
||||
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
|
||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
@@ -3462,5 +3467,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3519,5 +3524,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public boolean usesPurpurClient() {
|
||||
return getHandle().purpurClient;
|
||||
}
|
||||
@@ -317,10 +317,10 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b
|
||||
public boolean untamedTamablesAreRidable = true;
|
||||
public boolean useNightVisionWhenRiding = false;
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index d7c7e12c0b8f77e59d94de130972f762ed227726..88bac31994679c6a1b65e237fd44b239817fa2cf 100644
|
||||
index 3283ed99c35ffed6805567705e0518d9f84feedc..a9a39f0da7b09410d8171172a4219c7d509fdb99 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -205,6 +205,7 @@ public class ActivationRange
|
||||
@@ -201,6 +201,7 @@ public class ActivationRange
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Bring back server name
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
index bab2471616404821671264ccefd729cab8d0bf58..ae75edfaa9e4c72f11fbb7ffc66294be47c206cc 100644
|
||||
index 9d10cdacb3aed2c00dc60aeb6f2cbeb48905e21f..842f382de43df5d5c321422372ec30ccdd7859d7 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
@@ -57,6 +57,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
||||
@@ -56,6 +56,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
||||
public final boolean onlineMode = this.get("online-mode", true);
|
||||
public final boolean preventProxyConnections = this.get("prevent-proxy-connections", false);
|
||||
public final String serverIp = this.get("server-ip", "");
|
||||
@@ -17,12 +17,12 @@ index bab2471616404821671264ccefd729cab8d0bf58..ae75edfaa9e4c72f11fbb7ffc66294be
|
||||
public final boolean spawnNpcs = this.get("spawn-npcs", true);
|
||||
public final boolean pvp = this.get("pvp", true);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index f36a87ba93da564b3b2c8b9f9190f8853557bdcd..a34f3eaa47c2b193a1b8dfbdf6f0c79bd3ace489 100644
|
||||
index 26eb9ff0f4e77230d1eae793398869e71999982b..c014528d7d2583fa0a3007c42ea9c16f2d0eb20c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3279,4 +3279,11 @@ public final class CraftServer implements Server {
|
||||
@@ -3293,4 +3293,11 @@ public final class CraftServer implements Server {
|
||||
return this.potionBrewer;
|
||||
}
|
||||
|
||||
// Paper end
|
||||
+
|
||||
+ // Purpur start
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 5a0ebacdda1cf62ce5c8d088c1266cfd47923ff5..66bacce6f3cfa94341fa663a55c5e99a51f0e437 100644
|
||||
index 73b77367039eb6a4445d1ef2d66fb3410e91f4b8..8a6f7681d97c48886f5a78b61763e718e56ec015 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1873,7 +1873,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1925,7 +1925,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
27
patches/server/0013-LivingEntity-safeFallDistance.patch
Normal file
27
patches/server/0013-LivingEntity-safeFallDistance.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 5 May 2019 12:58:45 -0500
|
||||
Subject: [PATCH] LivingEntity safeFallDistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index aa351df679f300018367244c7ccb3e5a59e9276f..39c2a9f732b8e2452fd2dca07193a173d0c2ba1c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -1173,4 +1173,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
this.getHandle().setYBodyRot(bodyYaw);
|
||||
}
|
||||
// Paper end - body yaw API
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public float getSafeFallDistance() {
|
||||
+ return (float) getHandle().getAttributeValue(Attributes.SAFE_FALL_DISTANCE);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setSafeFallDistance(float safeFallDistance) {
|
||||
+ getHandle().getAttribute(Attributes.SAFE_FALL_DISTANCE).setBaseValue(safeFallDistance);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 66bacce6f3cfa94341fa663a55c5e99a51f0e437..0c7681a431e1986484319bf2de89d3cc3f7a6275 100644
|
||||
index 8a6f7681d97c48886f5a78b61763e718e56ec015..dfa332c4ff52033eb95248518bc44bbd22697697 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -308,6 +308,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -315,6 +315,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
||||
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
@@ -16,7 +16,7 @@ index 66bacce6f3cfa94341fa663a55c5e99a51f0e437..0c7681a431e1986484319bf2de89d3cc
|
||||
|
||||
public volatile Thread shutdownThread; // Paper
|
||||
public volatile boolean abnormalExit = false; // Paper
|
||||
@@ -1207,6 +1208,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1215,6 +1216,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.recentTps[0] = tps1.getAverage();
|
||||
this.recentTps[1] = tps5.getAverage();
|
||||
this.recentTps[2] = tps15.getAverage();
|
||||
@@ -25,10 +25,10 @@ index 66bacce6f3cfa94341fa663a55c5e99a51f0e437..0c7681a431e1986484319bf2de89d3cc
|
||||
}
|
||||
// Paper end - further improve server tick loop
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index a34f3eaa47c2b193a1b8dfbdf6f0c79bd3ace489..8f21c4aee84070eab2798cfcd4200b6d2e8320a4 100644
|
||||
index c014528d7d2583fa0a3007c42ea9c16f2d0eb20c..6d8b433af8596dd5b5a3b04e901527cd50a31dec 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3285,5 +3285,10 @@ public final class CraftServer implements Server {
|
||||
@@ -3299,5 +3299,10 @@ public final class CraftServer implements Server {
|
||||
public String getServerName() {
|
||||
return this.getProperties().serverName;
|
||||
}
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||
index dc11683ee4d8a6b7a1c42bcae36dc6e8105cd994..22f2b1b445f383b2e784688908a92b90ece21cb3 100644
|
||||
index a46bf73c608641bf1f00fd55242de71a0f2ee06e..9b3bf5ac043262c6cd00d83b750c3313122d92a9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
|
||||
@@ -320,6 +320,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
@@ -330,6 +330,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ index dc11683ee4d8a6b7a1c42bcae36dc6e8105cd994..22f2b1b445f383b2e784688908a92b90
|
||||
public static ResourceLocation getKey(EntityType<?> type) {
|
||||
return BuiltInRegistries.ENTITY_TYPE.getKey(type);
|
||||
}
|
||||
@@ -531,6 +541,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
@@ -537,6 +547,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
return this.category;
|
||||
}
|
||||
|
||||
@@ -43,13 +43,13 @@ index dc11683ee4d8a6b7a1c42bcae36dc6e8105cd994..22f2b1b445f383b2e784688908a92b90
|
||||
if (this.descriptionId == null) {
|
||||
this.descriptionId = Util.makeDescriptionId("entity", BuiltInRegistries.ENTITY_TYPE.getKey(this));
|
||||
diff --git a/src/main/java/net/minecraft/world/item/SpawnEggItem.java b/src/main/java/net/minecraft/world/item/SpawnEggItem.java
|
||||
index 3bfbf7daa190b03f978b9fc72233c18c383b6659..32996934bb47f4b7b2aa65dfd8739d8f67c740ef 100644
|
||||
index 9cea8da84f39bb3f687139ef213ccea358724dee..076e6858222b92f8409f1f5cad398582c1fd6bcb 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/SpawnEggItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/SpawnEggItem.java
|
||||
@@ -68,6 +68,16 @@ public class SpawnEggItem extends Item {
|
||||
@@ -74,6 +74,15 @@ public class SpawnEggItem extends Item {
|
||||
Spawner spawner = (Spawner) tileentity;
|
||||
|
||||
entitytypes = this.getType(itemstack.getTag());
|
||||
entitytypes = this.getType(itemstack);
|
||||
+
|
||||
+ // Purpur start
|
||||
+ org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
||||
@@ -59,7 +59,6 @@ index 3bfbf7daa190b03f978b9fc72233c18c383b6659..32996934bb47f4b7b2aa65dfd8739d8f
|
||||
+ }
|
||||
+ entitytypes = EntityType.getFromBukkitType(event.getEntityType());
|
||||
+ // Purpur end
|
||||
+
|
||||
spawner.setEntityId(entitytypes, world.getRandom());
|
||||
world.sendBlockUpdated(blockposition, iblockdata, iblockdata, 3);
|
||||
world.gameEvent((Entity) context.getPlayer(), GameEvent.BLOCK_CHANGE, blockposition);
|
||||
world.gameEvent((Entity) context.getPlayer(), (Holder) GameEvent.BLOCK_CHANGE, blockposition);
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Anvil API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index 8fd82051bba33b4703e4d99fff886b63a319a5ba..1af23da6b3ccb4759e46e37cfa2ca85cf78f3ec2 100644
|
||||
index 32910f677b0522ac8ec513fa0d00b714b52cfae4..f85eef14b91a0ada1f6f4b13ab3966f051ff92d3 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -76,6 +76,7 @@ public abstract class AbstractContainerMenu {
|
||||
@@ -17,10 +17,10 @@ index 8fd82051bba33b4703e4d99fff886b63a319a5ba..1af23da6b3ccb4759e46e37cfa2ca85c
|
||||
// CraftBukkit start
|
||||
public boolean checkReachable = true;
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
|
||||
index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe46619d24 100644
|
||||
index 2bd91b48eaa06f85a5b9b1ae052c70e966ae8e4c..3d0a4380de7885c85d85f4ec1d4cf8a5044e93de 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
|
||||
@@ -23,6 +23,13 @@ import org.slf4j.Logger;
|
||||
@@ -25,6 +25,13 @@ import org.slf4j.Logger;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventoryView;
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -34,7 +34,7 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
public class AnvilMenu extends ItemCombinerMenu {
|
||||
|
||||
public static final int INPUT_SLOT = 0;
|
||||
@@ -51,6 +58,8 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
@@ -53,6 +60,8 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
public int maximumRepairCost = 40;
|
||||
private CraftInventoryView bukkitEntity;
|
||||
// CraftBukkit end
|
||||
@@ -43,12 +43,12 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
|
||||
public AnvilMenu(int syncId, Inventory inventory) {
|
||||
this(syncId, inventory, ContainerLevelAccess.NULL);
|
||||
@@ -78,12 +87,15 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
@@ -80,12 +89,15 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
|
||||
@Override
|
||||
protected boolean mayPickup(Player player, boolean present) {
|
||||
- return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && this.cost.get() > AnvilMenu.DEFAULT_DENIED_COST && present; // CraftBukkit - allow cost 0 like a free item
|
||||
+ return (player.getAbilities().instabuild || player.experienceLevel >= this.cost.get()) && (bypassCost || this.cost.get() > AnvilMenu.DEFAULT_DENIED_COST) && present; // CraftBukkit - allow cost 0 like a free item // Purpur
|
||||
- return (player.hasInfiniteMaterials() || player.experienceLevel >= this.cost.get()) && this.cost.get() > AnvilMenu.DEFAULT_DENIED_COST && present; // CraftBukkit - allow cost 0 like a free item
|
||||
+ return (player.hasInfiniteMaterials() || player.experienceLevel >= this.cost.get()) && (bypassCost || this.cost.get() > AnvilMenu.DEFAULT_DENIED_COST) && present; // CraftBukkit - allow cost 0 like a free item // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,7 +60,7 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
player.giveExperienceLevels(-this.cost.get());
|
||||
}
|
||||
|
||||
@@ -134,6 +146,12 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
@@ -136,6 +148,12 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
|
||||
@Override
|
||||
public void createResult() {
|
||||
@@ -73,25 +73,25 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
ItemStack itemstack = this.inputSlots.getItem(0);
|
||||
|
||||
this.cost.set(1);
|
||||
@@ -210,7 +228,7 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
int i2 = (Integer) map1.get(enchantment);
|
||||
@@ -143,7 +161,7 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
long j = 0L;
|
||||
byte b0 = 0;
|
||||
|
||||
i2 = l1 == i2 ? i2 + 1 : Math.max(i2, l1);
|
||||
- boolean flag3 = enchantment.canEnchant(itemstack);
|
||||
+ boolean flag3 = canDoUnsafeEnchants || enchantment.canEnchant(itemstack); // Purpur
|
||||
|
||||
if (this.player.getAbilities().instabuild || itemstack.is(Items.ENCHANTED_BOOK)) {
|
||||
flag3 = true;
|
||||
- if (!itemstack.isEmpty() && EnchantmentHelper.canStoreEnchantments(itemstack)) {
|
||||
+ if (!itemstack.isEmpty() && canDoUnsafeEnchants || EnchantmentHelper.canStoreEnchantments(itemstack)) { // Purpur
|
||||
ItemStack itemstack1 = itemstack.copy();
|
||||
ItemStack itemstack2 = this.inputSlots.getItem(1);
|
||||
ItemEnchantments.Mutable itemenchantments_a = new ItemEnchantments.Mutable(EnchantmentHelper.getEnchantmentsForCrafting(itemstack1));
|
||||
@@ -222,7 +240,7 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
Enchantment enchantment1 = (Enchantment) iterator1.next();
|
||||
Holder<Enchantment> holder1 = (Holder) iterator1.next();
|
||||
|
||||
if (enchantment1 != enchantment && !enchantment.isCompatibleWith(enchantment1)) {
|
||||
- flag3 = false;
|
||||
+ flag3 = canDoUnsafeEnchants; // Purpur
|
||||
++i;
|
||||
}
|
||||
if (!holder1.equals(holder) && !enchantment.isCompatibleWith((Enchantment) holder1.value())) {
|
||||
- flag3 = false;
|
||||
+ flag3 = canDoUnsafeEnchants; // Purpur
|
||||
++i;
|
||||
}
|
||||
@@ -293,6 +311,13 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
}
|
||||
@@ -280,6 +298,13 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
this.cost.set(this.maximumRepairCost - 1); // CraftBukkit
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
if (this.cost.get() >= this.maximumRepairCost && !this.player.getAbilities().instabuild) { // CraftBukkit
|
||||
itemstack1 = ItemStack.EMPTY;
|
||||
}
|
||||
@@ -315,6 +340,12 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
@@ -301,6 +326,12 @@ public class AnvilMenu extends ItemCombinerMenu {
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), itemstack1); // CraftBukkit
|
||||
this.sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client
|
||||
this.broadcastChanges();
|
||||
@@ -115,11 +115,11 @@ index f00638e9d7baf8b803dd610f2bf6250da34efab3..9cc9925cd43c4b1b742acde9cf4fb5fe
|
||||
+ ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get()));
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
}
|
||||
|
||||
} 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
|
||||
diff --git a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java
|
||||
index c2cf5a8e788637c6264cf43d712a5be223ff1cc5..a578882b64c581ef4f47fa483a9f2988cfa4c8cf 100644
|
||||
index 7de5e47f9a54263734eeef855a2dc07ef64d30ea..7215af6cc91f48b040c23c54536d4aac8d293497 100644
|
||||
--- a/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java
|
||||
+++ b/src/main/java/net/minecraft/world/inventory/ItemCombinerMenu.java
|
||||
@@ -178,7 +178,9 @@ public abstract class ItemCombinerMenu extends AbstractContainerMenu {
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] Alternative Keepalive Handling
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 34559eae0ea3f88d7b9a3c9e4a2350c4f9c074d7..6d9dea1dbd47df98ea44881deb6b7493edbdbd5d 100644
|
||||
index 4228fd441f8350d43bd545e31c920304f07968bc..3a15085e0421f46800f779066d235ef21b463289 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -51,6 +51,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
private long keepAliveTime = Util.getMillis(); // Paper
|
||||
private boolean keepAlivePending;
|
||||
@@ -73,6 +73,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
private long keepAliveChallenge;
|
||||
private long closedListenerTime;
|
||||
private boolean closed = false;
|
||||
+ private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Purpur
|
||||
private int latency;
|
||||
private volatile boolean suspendFlushingOnServerThread = false;
|
||||
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
|
||||
@@ -92,6 +93,16 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -124,6 +125,16 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
|
||||
@Override
|
||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||
@@ -33,7 +33,7 @@ index 34559eae0ea3f88d7b9a3c9e4a2350c4f9c074d7..6d9dea1dbd47df98ea44881deb6b7493
|
||||
//PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // CraftBukkit // Paper - handle ServerboundKeepAlivePacket async
|
||||
if (this.keepAlivePending && packet.getId() == this.keepAliveChallenge) {
|
||||
int i = (int) (Util.getMillis() - this.keepAliveTime);
|
||||
@@ -217,6 +228,21 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -260,6 +271,21 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
long currentTime = Util.getMillis();
|
||||
long elapsedTime = currentTime - this.keepAliveTime;
|
||||
|
||||
@@ -52,9 +52,9 @@ index 34559eae0ea3f88d7b9a3c9e4a2350c4f9c074d7..6d9dea1dbd47df98ea44881deb6b7493
|
||||
+ } else
|
||||
+ // Purpur end
|
||||
+
|
||||
if (this.keepAlivePending) {
|
||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
||||
if (!this.isSingleplayerOwner() && elapsedTime >= KEEPALIVE_LIMIT) { // Paper - check keepalive limit, don't fire if already disconnected
|
||||
if (this.keepAlivePending && !this.processedDisconnect) { // Paper
|
||||
this.disconnect(ServerCommonPacketListenerImpl.TIMEOUT_DISCONNECTION_MESSAGE, org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 9c5bba0ae119f8d42274455e322530ceb5f67d9b..a14cf3a5dc2ba265de5e400404afcbd9faa3f25a 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -5,20 +5,20 @@ Subject: [PATCH] Silk touch spawners
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/Items.java b/src/main/java/net/minecraft/world/item/Items.java
|
||||
index f692149d91b525bda6dc79d489d7496ea24037e8..7fbd4bf29bcc0795aa4b0e6d5d4bc3745bf7a1c0 100644
|
||||
index d00b59efb754594cf532f8598f4b6d3b29693232..6467358f5fdf4cd4f7c1e2cc65c834a9da39596a 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/Items.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/Items.java
|
||||
@@ -316,7 +316,7 @@ public class Items {
|
||||
@@ -338,7 +338,7 @@ public class Items {
|
||||
public static final Item PURPUR_BLOCK = registerBlock(Blocks.PURPUR_BLOCK);
|
||||
public static final Item PURPUR_PILLAR = registerBlock(Blocks.PURPUR_PILLAR);
|
||||
public static final Item PURPUR_STAIRS = registerBlock(Blocks.PURPUR_STAIRS);
|
||||
- public static final Item SPAWNER = registerBlock(Blocks.SPAWNER);
|
||||
+ public static final Item SPAWNER = registerBlock(new org.purpurmc.purpur.item.SpawnerItem(Blocks.SPAWNER, new Item.Properties().rarity(Rarity.EPIC))); // Purpur
|
||||
public static final Item CHEST = registerBlock(Blocks.CHEST);
|
||||
public static final Item CHEST = registerBlock(Blocks.CHEST, settings -> settings.component(DataComponents.CONTAINER, ItemContainerContents.EMPTY));
|
||||
public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE);
|
||||
public static final Item FARMLAND = registerBlock(Blocks.FARMLAND);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..1ac38424a44aa2225b9bd3fa0fbbe61b7b24875c 100644
|
||||
index 4f190a40b8474aa06a92c8afcc06d0044120ff7b..06c914983a285c1a4e973f1c55088ad6e561cd20 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
@@ -42,6 +42,60 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
@@ -80,7 +80,7 @@ index e8b1c44da90f60cde20cda65aba2aa1e30f89d25..1ac38424a44aa2225b9bd3fa0fbbe61b
|
||||
+ // Purpur end
|
||||
+
|
||||
@Override
|
||||
public void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) {
|
||||
protected void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack tool, boolean dropExperience) {
|
||||
super.spawnAfterBreak(state, world, pos, tool, dropExperience);
|
||||
@@ -50,6 +104,7 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add turtle egg block options
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
index b4646e26965e0f1f26c5019e7c6a13fdf22bdb47..a98f04c892d6e11e311b16af36e824857dd3bc76 100644
|
||||
index a6f408e56fa6c9de82fd93555fe21e1b11ce1022..c7377d04ceac3ea624117439783a443c6d6f6d08 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
|
||||
@@ -202,6 +202,25 @@ public class TurtleEggBlock extends Block {
|
||||
@@ -203,6 +203,25 @@ public class TurtleEggBlock extends Block {
|
||||
}
|
||||
|
||||
private boolean canDestroyEgg(Level world, Entity entity) {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Logger settings (suppressing pointless logs)
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
index f655e0ae4a287886d0291cd0089bad2000249d0f..fcb5965ff0a9623a8e63a4b7413ad55416d269d9 100644
|
||||
index c7e1f2bac3eca9bb72bf1f8c26cccb2905e1ddfc..94893039363b5fe2d7d0622d0592bce2c867b1c3 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
@@ -199,6 +199,7 @@ public class PlayerAdvancements {
|
||||
@@ -17,17 +17,17 @@ index f655e0ae4a287886d0291cd0089bad2000249d0f..fcb5965ff0a9623a8e63a4b7413ad554
|
||||
} else {
|
||||
this.startProgress(advancementholder, advancementprogress);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||
index 5ece375eaf6bcc61864997a389bb5e24625e4505..aee4ab6c7ea09006bec4a1c6df0005718c6d86bd 100644
|
||||
index 1351423a12c19a01f602a202832372a399e6a867..1e2025674eafcf56460c741083c91e2e42d61b19 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
||||
@@ -318,6 +318,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
||||
@@ -326,6 +326,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
||||
return true;
|
||||
} else {
|
||||
// Paper start - Buffer OOB setBlock calls
|
||||
+ if (!org.purpurmc.purpur.PurpurConfig.loggerSuppressSetBlockFarChunk) // Purpur
|
||||
if (!hasSetFarWarned) {
|
||||
Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));
|
||||
hasSetFarWarned = true;
|
||||
Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + String.valueOf(pos) + ", status: " + String.valueOf(this.generatingStatus) + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));
|
||||
hasSetFarWarned = true;
|
||||
diff --git a/src/main/java/net/minecraft/stats/ServerRecipeBook.java b/src/main/java/net/minecraft/stats/ServerRecipeBook.java
|
||||
index 4103ddf16164e3992fef0765d368282572537e29..a0cb49233b1dbf53ce9d1bcc52b8967829d0530e 100644
|
||||
--- a/src/main/java/net/minecraft/stats/ServerRecipeBook.java
|
||||
@@ -41,7 +41,7 @@ index 4103ddf16164e3992fef0765d368282572537e29..a0cb49233b1dbf53ce9d1bcc52b89678
|
||||
} else {
|
||||
handler.accept((RecipeHolder) optional.get());
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
|
||||
index fde9aadd6c688b9797a6755f9d214918047598a0..ffaa80b645da3ddf2da828071090e01aa667504d 100644
|
||||
index 71d057dc8c7362f8e7aaca5e31c9f02b2bf3f281..9d9405af0db28c0f3ffff2881b54f1dc84675a9d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
|
||||
@@ -256,6 +256,7 @@ public final class CraftLegacy {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Disable outdated build check
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
index 4f81321727b754c0e101bb05bc6474203412e89e..cce747b8a2d87d81429dfaf1e0073b1ea4b1a5d2 100644
|
||||
index 66a3b28d7b943d443ff66fdcfbce6e5260b9463e..222865a3cee62f244a566092a7d814efe478ee01 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
@@ -301,7 +301,7 @@ public class Main {
|
||||
@@ -302,7 +302,7 @@ public class Main {
|
||||
System.setProperty(net.minecrell.terminalconsole.TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
|
||||
}
|
||||
|
||||
@@ -5,22 +5,19 @@ Subject: [PATCH] Giants AI settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5..d014731fe352246299253bf005e23673abe091bc 100644
|
||||
index 9602e59cbebeedc85ea75d2a41d3e74f0ff45b46..3c1217d36522b1fd3d1a099d3a12d99016f34c4b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -1,14 +1,37 @@
|
||||
@@ -1,11 +1,34 @@
|
||||
package net.minecraft.world.entity.monster;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
+import net.minecraft.nbt.CompoundTag;
|
||||
+import net.minecraft.world.Difficulty;
|
||||
+import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityDimensions;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
+import net.minecraft.world.entity.EquipmentSlot;
|
||||
+import net.minecraft.world.entity.MobSpawnType;
|
||||
import net.minecraft.world.entity.Pose;
|
||||
+import net.minecraft.world.entity.SpawnGroupData;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
@@ -46,7 +43,7 @@ index c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5..d014731fe352246299253bf005e23673
|
||||
|
||||
public class Giant extends Monster {
|
||||
public Giant(EntityType<? extends Giant> type, Level world) {
|
||||
@@ -34,8 +57,23 @@ public class Giant extends Monster {
|
||||
@@ -30,8 +53,23 @@ public class Giant extends Monster {
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
@@ -70,15 +67,15 @@ index c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5..d014731fe352246299253bf005e23673
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -46,6 +84,32 @@ public class Giant extends Monster {
|
||||
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.giantAttackDamage);
|
||||
@Override
|
||||
@@ -47,8 +85,34 @@ public class Giant extends Monster {
|
||||
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 100.0).add(Attributes.MOVEMENT_SPEED, 0.5).add(Attributes.ATTACK_DAMAGE, 50.0);
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
||||
+ SpawnGroupData groupData = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt);
|
||||
+ public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData) {
|
||||
+ SpawnGroupData groupData = super.finalizeSpawn(world, difficulty, spawnReason, entityData);
|
||||
+ if (groupData == null) {
|
||||
+ populateDefaultEquipmentSlots(this.random, difficulty);
|
||||
+ populateDefaultEquipmentEnchantments(this.random, difficulty);
|
||||
@@ -102,11 +99,6 @@ index c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5..d014731fe352246299253bf005e23673
|
||||
+ return level().purpurConfig.giantJumpHeight;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
return 10.440001F;
|
||||
@@ -62,6 +126,6 @@ public class Giant extends Monster {
|
||||
|
||||
@Override
|
||||
public float getWalkTargetValue(BlockPos pos, LevelReader world) {
|
||||
- return world.getPathfindingCostFromLightLevels(pos);
|
||||
@@ -114,7 +106,7 @@ index c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5..d014731fe352246299253bf005e23673
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 8142559d9d4eccd9d105acb1ff3aa131d8ea67b0..6d94dc88a470b7e51aafad6c912ff516d114f179 100644
|
||||
index ac44ee7789b96e60e6d1d964d64ca33a3d3c2c62..fb61cd498955fee2dec15fa584273a6e19ca58c9 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -554,6 +554,10 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index cdc17904cdf3d6669503e09debfbb156a80f0020..0ae833018867b9f347fa8261898ec7353368ba4e 100644
|
||||
index fc791a66d299905798c2c1ca542467e4c7933caf..b02d9db8442b209a9df27e417be71b11d426878b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1016,10 +1016,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1006,10 +1006,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses
|
||||
|
||||
if (flag1) {
|
||||
@@ -30,7 +30,7 @@ index cdc17904cdf3d6669503e09debfbb156a80f0020..0ae833018867b9f347fa8261898ec735
|
||||
entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ());
|
||||
this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 6d94dc88a470b7e51aafad6c912ff516d114f179..06ea43ddbbaf3165b74303a713f55512b9701765 100644
|
||||
index fb61cd498955fee2dec15fa584273a6e19ca58c9..41822b9b050f4267cc0151ea85682523f89af57f 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1487,6 +1487,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Charged creeper naturally spawn
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index e6542240c317be28a7b536a736f7ccdc9f050dca..bc3d0654759b330c473de080b8a51c0a04cf3a19 100644
|
||||
index 624ae0e10ef9f51d484e45ec9a15e4a120bf2af2..38241cd51086eb4dedc7fe47e9b199d443e5e033 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -256,6 +256,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -257,6 +257,14 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.creeperMaxHealth);
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
index 23ede55b9b1198c72fe93b086129d4725d9352fe..106600ad9712d9a4fdf6770e81b40606b2f9b9b2 100644
|
||||
index 9eb1158213064ddb37ae76e445b5861b963a1f55..4abcde662ed78b16632ee575f695ee4329f11b2f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
||||
@@ -469,10 +469,23 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
@@ -466,10 +466,23 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
||||
}
|
||||
|
||||
this.setVariant(entityrabbit_variant);
|
||||
@@ -19,7 +19,7 @@ index 23ede55b9b1198c72fe93b086129d4725d9352fe..106600ad9712d9a4fdf6770e81b40606
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, (SpawnGroupData) entityData, entityNbt);
|
||||
return super.finalizeSpawn(world, difficulty, spawnReason, (SpawnGroupData) entityData);
|
||||
}
|
||||
|
||||
private static Rabbit.Variant getRandomRabbitVariant(LevelAccessor world, BlockPos pos) {
|
||||
@@ -33,7 +33,7 @@ index 23ede55b9b1198c72fe93b086129d4725d9352fe..106600ad9712d9a4fdf6770e81b40606
|
||||
int i = world.getRandom().nextInt(100);
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index c7956dfe6ef01868106d7c0989d5c6a612e07b7d..6087141b308c1998a6be13dbf6e1ef75d6ddc6a8 100644
|
||||
index e033ef722d9b6336f1cbc6bdf404f35c34b45db9..a96aa7f127467a6ea8025c09f4e336f1910cc8af 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -988,6 +988,8 @@ public class PurpurWorldConfig {
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix 'outdated server' showing in ping before server fully
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java
|
||||
index e5006e7672ba79ed4bcf2c4173c5a9ed4c68395b..6338c52e0082d36d3b80038fdb44abf2772adb30 100644
|
||||
index 6f1c9fa89e718cbc01a8d72de34154f49c5f46db..2455f8e9679914660ec4fcd081138dabfe9c225b 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java
|
||||
@@ -153,6 +153,7 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListene
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Tulips change fox type
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
index 3faa945f9687abeba7a36f8198cb307685e348a9..a910e897cbd11fa17469642de43225eb512c1c51 100644
|
||||
index 8666d82775570b812d5bdd80336c8e14db6ddf47..d2be8c1c23f291e98b9a31a63ba5fa7d44fc7402 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
|
||||
@@ -36,6 +36,7 @@ import net.minecraft.util.RandomSource;
|
||||
@@ -37,6 +37,7 @@ import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
@@ -16,7 +16,7 @@ index 3faa945f9687abeba7a36f8198cb307685e348a9..a910e897cbd11fa17469642de43225eb
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.AgeableMob;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
@@ -394,6 +395,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -389,6 +390,11 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
|
||||
private void setTargetGoals() {
|
||||
@@ -28,7 +28,7 @@ index 3faa945f9687abeba7a36f8198cb307685e348a9..a910e897cbd11fa17469642de43225eb
|
||||
if (this.getVariant() == Fox.Type.RED) {
|
||||
this.targetSelector.addGoal(4, this.landTargetGoal);
|
||||
this.targetSelector.addGoal(4, this.turtleEggTargetGoal);
|
||||
@@ -427,6 +433,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -422,6 +428,7 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
|
||||
public void setVariant(Fox.Type variant) {
|
||||
this.entityData.set(Fox.DATA_TYPE_ID, variant.getId());
|
||||
@@ -36,7 +36,7 @@ index 3faa945f9687abeba7a36f8198cb307685e348a9..a910e897cbd11fa17469642de43225eb
|
||||
}
|
||||
|
||||
List<UUID> getTrustedUUIDs() {
|
||||
@@ -773,6 +780,29 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
@@ -762,6 +769,29 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Breedable Polar Bears
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
index 5e6941abe1372ea4cba893de36ab20d2a3a42a21..5db17e4fc120e32e66a3a5c6313471ce5b090346 100644
|
||||
index 00afde0ec4811992aac306a42d473026b7e7e468..067bb175c457d6de089f18826dfce6c3661dad67 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
|
||||
@@ -98,6 +98,27 @@ public class PolarBear extends Animal implements NeutralMob {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Chickens can retaliate
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
index 3c06fe81e2e1d7bd546ead0d13d87cbe7e2e7b5b..bc3094493d7d25eaf50da8fdd74eacae25692b09 100644
|
||||
index a7c76e1d89f54f0dc3b27a8a8db168ea4570bf60..14210dac8a4fa8caaf69ec830f83d15525bb1bea 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
|
||||
@@ -75,19 +75,30 @@ public class Chicken extends Animal {
|
||||
@@ -74,13 +74,16 @@ public class Chicken extends Animal {
|
||||
@Override
|
||||
public void initAttributes() {
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.chickenMaxHealth);
|
||||
@@ -24,8 +24,9 @@ index 3c06fe81e2e1d7bd546ead0d13d87cbe7e2e7b5b..bc3094493d7d25eaf50da8fdd74eacae
|
||||
- this.goalSelector.addGoal(1, new PanicGoal(this, 1.4D));
|
||||
+ // this.goalSelector.addGoal(1, new PanicGoal(this, 1.4D)); // Purpur - moved down
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0D, Chicken.FOOD_ITEMS, false));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0D, (itemstack) -> {
|
||||
return itemstack.is(ItemTags.CHICKEN_FOOD);
|
||||
@@ -89,6 +92,14 @@ public class Chicken extends Animal {
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new RandomLookAroundGoal(this));
|
||||
@@ -40,7 +41,7 @@ index 3c06fe81e2e1d7bd546ead0d13d87cbe7e2e7b5b..bc3094493d7d25eaf50da8fdd74eacae
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -96,7 +107,7 @@ public class Chicken extends Animal {
|
||||
@@ -97,7 +108,7 @@ public class Chicken extends Animal {
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
@@ -50,7 +51,7 @@ index 3c06fe81e2e1d7bd546ead0d13d87cbe7e2e7b5b..bc3094493d7d25eaf50da8fdd74eacae
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 0d6f0e69093594fffcdb616d319be1b416909a64..c76957ae7e9f2aa6b34d0a1098cfbc036b723237 100644
|
||||
index ae6383c3d8435caba2bae551f36e3562e724361a..4cd6d9309ed81956d59063fe4d229c6f930922ed 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -299,6 +299,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,23 +5,31 @@ Subject: [PATCH] Add option to set armorstand step height
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index aa1e2c05c65391b5fbfce203c5095afd50682874..f8db28b15e551fc0e0c7f37c355237685c637529 100644
|
||||
index e49dda27dd609ebf377f679c4f60c13a5f610c8e..429d1a3fd7a75fe3dc8eb8d467ad4f2bd99e0212 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -337,7 +337,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -340,6 +340,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
public double xOld;
|
||||
public double yOld;
|
||||
public double zOld;
|
||||
- private float maxUpStep;
|
||||
+ public float maxUpStep; // Purpur - private -> public
|
||||
+ public float maxUpStep; // Purpur
|
||||
public boolean noPhysics;
|
||||
public final RandomSource random;
|
||||
public int tickCount;
|
||||
@@ -4852,7 +4853,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
- return 0.0F;
|
||||
+ return maxUpStep;
|
||||
}
|
||||
|
||||
public void onExplosionHit(@Nullable Entity entity) {}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
index eadcebd7845ee716e33c0ac0544502da1a6c5941..8cb248a185d880bf82ea4746341fe3db5dc89459 100644
|
||||
index c2bd2e303f956d390319f6bbbe9a6492ebec5154..5abbc0caf90cafc1a06dfff158c158b1538f827c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
|
||||
@@ -678,6 +678,7 @@ public class ArmorStand extends LivingEntity {
|
||||
@@ -676,6 +676,7 @@ public class ArmorStand extends LivingEntity {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Cat spawning options
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java
|
||||
index 5d1610eddcaf0cf65c726a5438b42e53bab85332..5665aa461f8c943bd7373df28d7d152251cce431 100644
|
||||
index e0e5046c84941a8d17e18c177f3daea9cb631940..d503d7a5837dbeb98e58dbe8f7e5de45f6d88990 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java
|
||||
@@ -28,7 +28,7 @@ public class CatSpawner implements CustomSpawner {
|
||||
@@ -27,7 +27,7 @@ public class CatSpawner implements CustomSpawner {
|
||||
if (this.nextTick > 0) {
|
||||
return 0;
|
||||
} else {
|
||||
@@ -17,7 +17,7 @@ index 5d1610eddcaf0cf65c726a5438b42e53bab85332..5665aa461f8c943bd7373df28d7d1522
|
||||
Player player = world.getRandomPlayer();
|
||||
if (player == null) {
|
||||
return 0;
|
||||
@@ -62,8 +62,12 @@ public class CatSpawner implements CustomSpawner {
|
||||
@@ -61,8 +61,12 @@ public class CatSpawner implements CustomSpawner {
|
||||
|
||||
private int spawnInVillage(ServerLevel world, BlockPos pos) {
|
||||
int i = 48;
|
||||
@@ -32,7 +32,7 @@ index 5d1610eddcaf0cf65c726a5438b42e53bab85332..5665aa461f8c943bd7373df28d7d1522
|
||||
if (list.size() < 5) {
|
||||
return this.spawnCat(pos, world);
|
||||
}
|
||||
@@ -74,7 +78,11 @@ public class CatSpawner implements CustomSpawner {
|
||||
@@ -73,7 +77,11 @@ public class CatSpawner implements CustomSpawner {
|
||||
|
||||
private int spawnInHut(ServerLevel world, BlockPos pos) {
|
||||
int i = 16;
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Cows eat mushrooms
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index f440eabffb1abe4c7370bf7badf6137a22f99071..9a1e1387932a92fdf86a144b2d94b4df50feef90 100644
|
||||
index bee1a275f242866206dc461461b7962e04289ddc..bda0d933ccbee613aa7fb31534351a0d2dbab0a7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -2,6 +2,7 @@ package net.minecraft.world.entity.animal;
|
||||
@@ -16,23 +16,24 @@ index f440eabffb1abe4c7370bf7badf6137a22f99071..9a1e1387932a92fdf86a144b2d94b4df
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
@@ -30,6 +31,7 @@ import net.minecraft.world.item.ItemUtils;
|
||||
@@ -29,6 +30,7 @@ import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ItemUtils;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.level.Level;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
@@ -73,6 +75,7 @@ public class Cow extends Animal {
|
||||
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
|
||||
// CraftBukkit start
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
@@ -73,7 +75,7 @@ public class Cow extends Animal {
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
+ if (level().purpurConfig.cowFeedMushrooms > 0) this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT, Blocks.RED_MUSHROOM.asItem(), Blocks.BROWN_MUSHROOM.asItem()), false)); else // Purpur
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, Ingredient.of(Items.WHEAT), false));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.25D, (itemstack) -> {
|
||||
- return itemstack.is(ItemTags.COW_FOOD);
|
||||
+ return level().purpurConfig.cowFeedMushrooms > 0 && (itemstack.is(Blocks.RED_MUSHROOM.asItem()) || itemstack.is(Blocks.BROWN_MUSHROOM.asItem())) || itemstack.is(ItemTags.COW_FOOD); // Purpur
|
||||
}, false));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 1.0D));
|
||||
@@ -128,6 +131,10 @@ public class Cow extends Animal {
|
||||
@@ -134,6 +136,10 @@ public class Cow extends Animal {
|
||||
|
||||
player.setItemInHand(hand, itemstack1);
|
||||
return InteractionResult.sidedSuccess(this.level().isClientSide);
|
||||
@@ -43,9 +44,9 @@ index f440eabffb1abe4c7370bf7badf6137a22f99071..9a1e1387932a92fdf86a144b2d94b4df
|
||||
} else {
|
||||
return super.mobInteract(player, hand);
|
||||
}
|
||||
@@ -148,4 +155,69 @@ public class Cow extends Animal {
|
||||
protected Vector3f getPassengerAttachmentPoint(Entity passenger, EntityDimensions dimensions, float scaleFactor) {
|
||||
return new Vector3f(0.0F, dimensions.height - 0.03125F * scaleFactor, 0.0F);
|
||||
@@ -149,4 +155,69 @@ public class Cow extends Animal {
|
||||
public EntityDimensions getDefaultDimensions(Pose pose) {
|
||||
return this.isBaby() ? Cow.BABY_DIMENSIONS : super.getDefaultDimensions(pose);
|
||||
}
|
||||
+
|
||||
+ // Purpur start - feed mushroom to change to mooshroom
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
index 0ff5902dde47c4bb9922d6605d874868fb4820b9..4c3a4a5e79412a570b0dc1fdeaf540b83eb84b82 100644
|
||||
index b47dddb2fc6058a90665ccbd362088d9a2e837b5..41b52f128fbc174939a7f2d1cd937ab19432de25 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
@@ -222,7 +222,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
@@ -218,7 +218,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
// this.discard(); // CraftBukkit - moved down
|
||||
entitycow.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
||||
entitycow.setHealth(this.getHealth());
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Pigs give saddle back
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
index fdf5651c7877313437ecd32914823d00e53bdb99..77147698154dfa6221a979ba170671d60da048ff 100644
|
||||
index a365573c5c5e640f165701bc79f7c605674c5709..4f84406304114abbaff9f96a5df6a48616983fa9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
|
||||
@@ -178,6 +178,17 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Snowman drop and put back pumpkin
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index 0c128449fbe51aa7e437568ba4bc857c1175df2b..cf68f12da22cb9b0980c21e90caf4dea62769fa5 100644
|
||||
index a54893d51cc1ce204e59a6ffe8b84228775af4da..0060414b1d5afde56372ce121e9d37a1668cd03b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -198,6 +198,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@@ -189,6 +189,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
}
|
||||
|
||||
return InteractionResult.sidedSuccess(this.level().isClientSide);
|
||||
@@ -24,7 +24,7 @@ index 0c128449fbe51aa7e437568ba4bc857c1175df2b..cf68f12da22cb9b0980c21e90caf4dea
|
||||
return tryRide(player, hand); // Purpur
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 05b7788d168cadb594613d81cbff0726a63d81d2..f63849ddb622633da41c38c7cbc03f0061acf139 100644
|
||||
index 1c530384c9040236ce525329f37913cdd3e424ff..acec5455e9c16508ae474e1307e3cc234d17e6ee 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1176,6 +1176,7 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Ender dragon always drop full exp
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 62ca0378469e74497bf256a58f55c2a73028d090..e4b2b35cb1704e61ce0a84cb97578cee7e1eed43 100644
|
||||
index 0a7f87ac09f9ef6ad69974090f0d6f437d232b11..f751444603e4a1a2ef53e7232b5abfff82c316e8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -749,7 +749,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -747,7 +747,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
boolean flag = this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT);
|
||||
short short0 = 500;
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow soil to moisten from water directly under it
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
index 6e4c852c93f2418ea69e485ed3a10cbe3a6e3bd2..81114915732ea4c8d772bc970a903646a7ae0c5a 100644
|
||||
index d59e33e7326489c6d55d316d0130f22235f4c63c..da85fabd75e9bd5ebece7127ef5b512df16fe3ac 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
|
||||
@@ -171,7 +171,7 @@ public class FarmBlock extends Block {
|
||||
@@ -172,7 +172,7 @@ public class FarmBlock extends Block {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Minecart settings and WASD controls
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index e4f36920d54688b515b86ada943765d460361889..0e2a165a86ee59cd27c68d5b96ecdbb49d74b15f 100644
|
||||
index bc6a5de72d52627b3ceca4b52b95e12ceddf1247..a17de781053a2c2caf615e5ac48a45c14386b0af 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1112,6 +1112,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -1189,6 +1189,7 @@ public class ServerPlayer extends Player {
|
||||
if (this.isInvulnerableTo(source)) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -17,10 +17,10 @@ index e4f36920d54688b515b86ada943765d460361889..0e2a165a86ee59cd27c68d5b96ecdbb4
|
||||
|
||||
if (!flag && this.spawnInvulnerableTime > 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
|
||||
index d514ec1e4cbdc579c3a61533998437903afdc8b6..93f42963816caa2a5f5b94c3bc1b87bbc9052a01 100644
|
||||
index 4d7454e5a64fc18e63793a221daa94617f17c666..97172e9c53c381d451111227feb4d1fa19d38ad8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
|
||||
@@ -105,12 +105,14 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -102,12 +102,14 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
private double flyingY = 0.95;
|
||||
private double flyingZ = 0.95;
|
||||
public double maxSpeed = 0.4D;
|
||||
@@ -35,7 +35,7 @@ index d514ec1e4cbdc579c3a61533998437903afdc8b6..93f42963816caa2a5f5b94c3bc1b87bb
|
||||
}
|
||||
|
||||
protected AbstractMinecart(EntityType<?> type, Level world, double x, double y, double z) {
|
||||
@@ -294,6 +296,12 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -296,6 +298,12 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -48,7 +48,7 @@ index d514ec1e4cbdc579c3a61533998437903afdc8b6..93f42963816caa2a5f5b94c3bc1b87bb
|
||||
// CraftBukkit start
|
||||
double prevX = this.getX();
|
||||
double prevY = this.getY();
|
||||
@@ -451,16 +459,62 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
@@ -448,16 +456,62 @@ public abstract class AbstractMinecart extends VehicleEntity {
|
||||
|
||||
public void activateMinecart(int x, int y, int z, boolean powered) {}
|
||||
|
||||
@@ -112,10 +112,10 @@ index d514ec1e4cbdc579c3a61533998437903afdc8b6..93f42963816caa2a5f5b94c3bc1b87bb
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
if (!this.onGround()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/MinecartItem.java b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||
index 3aa73cd44aa8c86b78c35bc1788e4f83018c49ed..66a8b28275619079e3bcbcc460146976d533d54e 100644
|
||||
index 66074445d3908b9bb1c8d70e1e27d057720ec8e5..0fd4f2ab929df479360755a3f1e58a933ae59520 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/MinecartItem.java
|
||||
@@ -119,8 +119,9 @@ public class MinecartItem extends Item {
|
||||
@@ -120,8 +120,9 @@ public class MinecartItem extends Item {
|
||||
BlockState iblockdata = world.getBlockState(blockposition);
|
||||
|
||||
if (!iblockdata.is(BlockTags.RAILS)) {
|
||||
@@ -127,7 +127,7 @@ index 3aa73cd44aa8c86b78c35bc1788e4f83018c49ed..66a8b28275619079e3bcbcc460146976
|
||||
ItemStack itemstack = context.getItemInHand();
|
||||
|
||||
if (world instanceof ServerLevel) {
|
||||
@@ -145,6 +146,6 @@ public class MinecartItem extends Item {
|
||||
@@ -146,6 +147,6 @@ public class MinecartItem extends Item {
|
||||
|
||||
itemstack.shrink(1);
|
||||
return InteractionResult.sidedSuccess(world.isClientSide);
|
||||
@@ -136,20 +136,20 @@ index 3aa73cd44aa8c86b78c35bc1788e4f83018c49ed..66a8b28275619079e3bcbcc460146976
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
index 2892e586146cbc560f0bcf4b9af6d0575cb0a82e..63c4d52c348d9297a24abb17e105b2f4c7758740 100644
|
||||
index 2034ca2edd3aff61d94416266e75402babd3e741..3c1091f2a729b7d06ba6e21c37f788edb2ad1775 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||
@@ -92,7 +92,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||
@@ -94,7 +94,7 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||
protected final float jumpFactor;
|
||||
protected final boolean dynamicShape;
|
||||
protected final FeatureFlagSet requiredFeatures;
|
||||
- protected final BlockBehaviour.Properties properties;
|
||||
+ public final BlockBehaviour.Properties properties; // Purpur - protected -> public
|
||||
@Nullable
|
||||
protected ResourceLocation drops;
|
||||
protected ResourceKey<LootTable> drops;
|
||||
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 113d827713b409cc3093c39a56439d7c0d04e129..24dcdf3ca52129d3d35902c94ae302e35385cd50 100644
|
||||
index 41b804abeab390a259eb0c8ed72f75ad403471dd..755d53e04bb0ed678bebc3497476e252dd5a736e 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -95,6 +95,68 @@ public class PurpurWorldConfig {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 5e5485906f1157e52a7082278adcb7b6e56f3f06..a065009d01a5e28a3054241f30e5bedf21350cb5 100644
|
||||
index a3ee2af337acef86a15b12c9e6d8cd8452980a87..7b210484fd10e6e994c66afb45f8a28ffb5812f1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1851,6 +1851,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -1864,6 +1864,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
||||
this.dropEquipment(); // CraftBukkit - from below
|
||||
if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
||||
@@ -16,7 +16,7 @@ index 5e5485906f1157e52a7082278adcb7b6e56f3f06..a065009d01a5e28a3054241f30e5bedf
|
||||
this.dropFromLootTable(source, flag);
|
||||
// Paper start
|
||||
final boolean prev = this.clearEquipmentSlots;
|
||||
@@ -1859,6 +1860,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -1872,6 +1873,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
// Paper end
|
||||
this.dropCustomDeathLoot(source, i, flag);
|
||||
this.clearEquipmentSlots = prev; // Paper
|
||||
@@ -5,30 +5,21 @@ Subject: [PATCH] Option to toggle milk curing bad omen
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/MilkBucketItem.java b/src/main/java/net/minecraft/world/item/MilkBucketItem.java
|
||||
index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af74fe2473 100644
|
||||
index 0f83ae4b0d5f52ff9ccfff6bbcc31153d45bd619..d0751274e89042715cab8e9e72387042356e3244 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/MilkBucketItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/MilkBucketItem.java
|
||||
@@ -5,6 +5,8 @@ import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.stats.Stats;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
+import net.minecraft.world.effect.MobEffectInstance;
|
||||
+import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
@@ -31,7 +33,9 @@ public class MilkBucketItem extends Item {
|
||||
}
|
||||
@@ -26,7 +26,9 @@ public class MilkBucketItem extends Item {
|
||||
|
||||
stack.consume(1, user);
|
||||
if (!world.isClientSide) {
|
||||
+ MobEffectInstance badOmen = user.getEffect(MobEffects.BAD_OMEN);
|
||||
+ net.minecraft.world.effect.MobEffectInstance badOmen = user.getEffect(net.minecraft.world.effect.MobEffects.BAD_OMEN); // Purpur
|
||||
user.removeAllEffects(org.bukkit.event.entity.EntityPotionEffectEvent.Cause.MILK); // CraftBukkit
|
||||
+ if (!world.purpurConfig.milkCuresBadOmen && badOmen != null) user.addEffect(badOmen); // Purpur
|
||||
}
|
||||
|
||||
return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack;
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 9832d71949025eed99a3e9e8b09f9bee9991e36a..297dfcc634cbe6993e7844209ee564ad530866ac 100644
|
||||
index b7bf1a6e59e33d13887ae3d98f37658f52030e37..40493cbb1b14f16549b95aa439e4c25c04a0627c 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -96,8 +96,10 @@ public class PurpurWorldConfig {
|
||||
@@ -5,14 +5,14 @@ Subject: [PATCH] End gateway should check if entity can use portal
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
index 098fde8200a11f91f934ddab6b1486dac4014dfe..8be3d696f6401189406032dd8d45dc747f546df5 100644
|
||||
index 93bd70c1dc2ba8b893a6087730071c81fb1132f4..60b343edc4383c8bc450f106f483349850432fa3 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
|
||||
@@ -171,6 +171,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||
@@ -167,6 +167,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
|
||||
|
||||
public static void teleportEntity(Level world, BlockPos pos, BlockState state, Entity entity, TheEndGatewayBlockEntity blockEntity) {
|
||||
if (world instanceof ServerLevel && !blockEntity.isCoolingDown()) {
|
||||
if (world instanceof ServerLevel worldserver && !blockEntity.isCoolingDown()) {
|
||||
+ if (!entity.canChangeDimensions()) return; // Purpur
|
||||
ServerLevel worldserver = (ServerLevel) world;
|
||||
|
||||
blockEntity.teleportCooldown = 100;
|
||||
BlockPos blockposition1;
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Skip events if there's no listeners
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index b7f338e982d0dcab99137ab6dc200b82ac6b7cba..32f355b1b33cf2b7b7a276fb0fd98314a962e685 100644
|
||||
index aa2fca6917fb67fe0e9ba067d11487c3a274f675..5c7287ef8c2d59215aff81cb138a55676bfa6356 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -506,6 +506,7 @@ public class Commands {
|
||||
@@ -501,6 +501,7 @@ public class Commands {
|
||||
private void runSync(ServerPlayer player, Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootcommandnode) {
|
||||
// Paper end - Perf: Async command map building
|
||||
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper - Brigadier API
|
||||
@@ -16,7 +16,7 @@ index b7f338e982d0dcab99137ab6dc200b82ac6b7cba..32f355b1b33cf2b7b7a276fb0fd98314
|
||||
PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit));
|
||||
event.getPlayer().getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -516,6 +517,7 @@ public class Commands {
|
||||
@@ -511,6 +512,7 @@ public class Commands {
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index f8a6d48200dae42cb73ed4f7eb52f957e7530e8c..8d4e080540fb24b434e6d01eee6e7c2116c66804 100644
|
||||
index f10dcc0debcdd2077ee53cb1aefca8abd12f3ecd..338808ba1138f62d89f3f1338a4c5068426df0e4 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1181,6 +1181,7 @@ public abstract class PlayerList {
|
||||
@@ -1180,6 +1180,7 @@ public abstract class PlayerList {
|
||||
} else {
|
||||
b0 = (byte) (24 + permissionLevel);
|
||||
}
|
||||
@@ -5,29 +5,22 @@ Subject: [PATCH] Configurable TPS Catchup
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 0c7681a431e1986484319bf2de89d3cc3f7a6275..4c61c1dd393ac13da2f0f2b2c07db3070a172e02 100644
|
||||
index dfa332c4ff52033eb95248518bc44bbd22697697..f3ad4ee45ba48a10bbae1084f291ae0bcccdf624 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1233,11 +1233,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1240,6 +1240,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.profiler.popPush("nextTickWait");
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
|
||||
// Pufferfish start - tps catchup
|
||||
- if (!gg.pufferfish.pufferfish.PufferfishConfig.tpsCatchup) {
|
||||
+ if (!org.purpurmc.purpur.PurpurConfig.tpsCatchup || !gg.pufferfish.pufferfish.PufferfishConfig.tpsCatchup) {
|
||||
this.nextTickTimeNanos = currentTime + i;
|
||||
this.delayedTasksMaxNextTickTimeNanos = nextTickTimeNanos;
|
||||
}
|
||||
// Pufferfish end
|
||||
+ // Purpur start - tps catchup
|
||||
+ //if (org.purpurmc.purpur.PurpurConfig.tpsCatchup) {
|
||||
+ // this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
|
||||
+ //} else {
|
||||
+ // this.delayedTasksMaxNextTickTimeNanos = this.nextTickTimeNanos = curTime + i;
|
||||
+ //}
|
||||
+ // Purpur end - tps catchup
|
||||
+ // Purpur start
|
||||
+ if (!org.purpurmc.purpur.PurpurConfig.tpsCatchup) {
|
||||
+ this.nextTickTimeNanos = currentTime + i;
|
||||
+ this.delayedTasksMaxNextTickTimeNanos = nextTickTimeNanos;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
this.startMeasuringTaskExecutionTime();
|
||||
this.waitUntilNextTick();
|
||||
if (flag) {
|
||||
this.tickRateManager.endTickWork();
|
||||
this.finishMeasuringTaskExecutionTime();
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index a14879f4266c71b7493c05e105114590c6709045..909cfeba89c2370adc2eebf72ba8ad46d33bce7b 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to allow loyalty on tridents to work in the void
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
||||
index 8ae7d62b72fb72d893e68b02b645d48374595ae6..2bd77524313ae7b32f710e7d197e81a2ddd12965 100644
|
||||
index 3ff06cc6ad35567bcb1f29115db63c11a8e79dbb..f7dd785bdb0dbd0706b367b48235215ff1a0e08f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java
|
||||
@@ -63,7 +63,7 @@ public class ThrownTrident extends AbstractArrow {
|
||||
@@ -67,7 +67,7 @@ public class ThrownTrident extends AbstractArrow {
|
||||
Entity entity = this.getOwner();
|
||||
byte b0 = (Byte) this.entityData.get(ThrownTrident.ID_LOYALTY);
|
||||
|
||||
@@ -5,23 +5,23 @@ Subject: [PATCH] Add enderman and creeper griefing controls
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
index bc3d0654759b330c473de080b8a51c0a04cf3a19..88a1f4ee23c29daec81e1807129e4facf3c19714 100644
|
||||
index 38241cd51086eb4dedc7fe47e9b199d443e5e033..9334a3b7d401c0f3a04bb7675f7baf9c7685688e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
||||
@@ -363,7 +363,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
@@ -361,7 +361,7 @@ public class Creeper extends Monster implements PowerableMob {
|
||||
if (!event.isCancelled()) {
|
||||
// CraftBukkit end
|
||||
this.dead = true;
|
||||
- this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), Level.ExplosionInteraction.MOB); // CraftBukkit
|
||||
+ this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), this.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) && level().purpurConfig.creeperAllowGriefing ? Level.ExplosionInteraction.MOB : Level.ExplosionInteraction.NONE); // CraftBukkit // Purpur
|
||||
- this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), Level.ExplosionInteraction.MOB); // CraftBukkit // Paper - fix DamageSource API
|
||||
+ this.level().explode(this, this.getX(), this.getY(), this.getZ(), event.getRadius(), event.getFire(), this.level().getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) && level().purpurConfig.creeperAllowGriefing ? Level.ExplosionInteraction.MOB : Level.ExplosionInteraction.NONE); // CraftBukkit // Paper - fix DamageSource API // Purpur
|
||||
this.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause
|
||||
this.spawnLingeringCloud();
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index d973adad5411b390464d7a654d8e8c1dcf69729c..cc917e69d8d15061121278fe833225f5c8812007 100644
|
||||
index 3abfc4f449552ec60a1f7c4e3faa9fd0ebfdc300..89275ac02fcfab963b520efae6135d6f5ac13465 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -547,6 +547,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -524,6 +524,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
@@ -29,7 +29,7 @@ index d973adad5411b390464d7a654d8e8c1dcf69729c..cc917e69d8d15061121278fe833225f5
|
||||
return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0);
|
||||
}
|
||||
|
||||
@@ -592,6 +593,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
@@ -569,6 +570,7 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
|
||||
@Override
|
||||
public boolean canUse() {
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Villagers follow emerald blocks
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
index 0d9b194781d152e842c9a4b8d6f23d307b2e4452..00cf59524477ec79d4354cc403fc3e75a63b81a0 100644
|
||||
index 13f8c2cb42334ba3b573ca44ace1d3df76e41ff7..baca552e52c728867fcb0527b6c3eb394b2b9c7f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/TemptGoal.java
|
||||
@@ -62,7 +62,7 @@ public class TemptGoal extends Goal {
|
||||
@@ -64,7 +64,7 @@ public class TemptGoal extends Goal {
|
||||
}
|
||||
|
||||
private boolean shouldFollow(LivingEntity entity) {
|
||||
@@ -18,10 +18,10 @@ index 0d9b194781d152e842c9a4b8d6f23d307b2e4452..00cf59524477ec79d4354cc403fc3e75
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
index 4e6c2f6b2e54a4c126e9a026b9cad05ce835ad66..69553b5b3c56998e4ae40876b1458929b335ad5d 100644
|
||||
index d323cf157f2a910916baa9ce3f7e5bc81648c47d..6cbbca1db5362fa2dd5c5704c7fbaa612d3cbab1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/AbstractVillager.java
|
||||
@@ -42,6 +42,7 @@ import org.bukkit.event.entity.VillagerAcquireTradeEvent;
|
||||
@@ -48,6 +48,7 @@ import org.bukkit.event.entity.VillagerAcquireTradeEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
public abstract class AbstractVillager extends AgeableMob implements InventoryCarrier, Npc, Merchant {
|
||||
@@ -30,10 +30,10 @@ index 4e6c2f6b2e54a4c126e9a026b9cad05ce835ad66..69553b5b3c56998e4ae40876b1458929
|
||||
// CraftBukkit start
|
||||
private CraftMerchant craftMerchant;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 8a864f236048e0c2b120f698439af652a8bcb0a8..798325b7594bc0167657eef1bee6aff770591d04 100644
|
||||
index ff86c7d4878e43fc9d375b9b60213a2271b92cff..fad0d393a96d818e90aaa42f3d8d32fa97f7b337 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -156,6 +156,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -154,6 +154,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
this.getNavigation().setCanFloat(true);
|
||||
this.setCanPickUpLoot(true);
|
||||
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
|
||||
@@ -42,7 +42,7 @@ index 8a864f236048e0c2b120f698439af652a8bcb0a8..798325b7594bc0167657eef1bee6aff7
|
||||
|
||||
// Purpur start
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 80a157aa57fe5e6725b6e06a93b841d66cf62455..301d985b89b98a644603a6b086889442f4a37d79 100644
|
||||
index ac3cca0db4478841f91d966bd49ca4e5b5e91229..30f13bc35a96950f05b065b5c77830834e5792d1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -113,6 +113,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -5,22 +5,22 @@ Subject: [PATCH] Allow leashing villagers
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 8b39ea90558dbd5356c038b74fa4037fb69546ac..43f2654eb0a396bce98e0840bdc8a8b16f00b2ba 100644
|
||||
index 26b03594b6ccd69ca35156472e27543d11ba2077..3d5f08d673f6b95c8f87070345f1fb200b5f4bde 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1325,6 +1325,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -1450,6 +1450,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
if (!this.isAlive()) {
|
||||
return InteractionResult.PASS;
|
||||
} else if (this.getLeashHolder() == player) {
|
||||
+ if (hand == InteractionHand.OFF_HAND && (level().purpurConfig.villagerCanBeLeashed || level().purpurConfig.wanderingTraderCanBeLeashed) && this instanceof net.minecraft.world.entity.npc.AbstractVillager) return InteractionResult.CONSUME; // Purpur
|
||||
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
||||
// Paper start - Expand EntityUnleashEvent
|
||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild);
|
||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 798325b7594bc0167657eef1bee6aff770591d04..451443c942285b0553c87c3456e140e69586b77c 100644
|
||||
index fad0d393a96d818e90aaa42f3d8d32fa97f7b337..051940da69567274f48485f060cbc3ac21a0907f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -186,6 +186,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -184,6 +184,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ index 798325b7594bc0167657eef1bee6aff770591d04..451443c942285b0553c87c3456e140e6
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
index 301d985b89b98a644603a6b086889442f4a37d79..6f30c22fe0058320b995570c9af7b15ae917dd76 100644
|
||||
index 30f13bc35a96950f05b065b5c77830834e5792d1..9d5eaaf1869a3ecb61947ab0c09af558fa1cd283 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||
@@ -93,6 +93,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||
@@ -1,91 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 5 May 2019 12:58:45 -0500
|
||||
Subject: [PATCH] LivingEntity safeFallDistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 3c7c618dd9611485b81336ca4a5059fcb1e4f1ff..09f64c62333ff1fe4c77377d86922de59aa05265 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -253,6 +253,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
protected boolean skipDropExperience;
|
||||
// CraftBukkit start
|
||||
public int expToDrop;
|
||||
+ public float safeFallDistance = 3.0F; // Purpur
|
||||
public boolean forceDrops;
|
||||
public ArrayList<DefaultDrop> drops = new ArrayList<>(); // Paper - Restore vanilla drops behavior
|
||||
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
|
||||
@@ -353,7 +354,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
this.tryAddSoulSpeed();
|
||||
}
|
||||
|
||||
- if (!this.level().isClientSide && this.fallDistance > 3.0F && onGround && !state.isAir()) {
|
||||
+ if (!this.level().isClientSide && this.fallDistance > this.safeFallDistance && onGround && !state.isAir()) { // Purpur
|
||||
double d1 = this.getX();
|
||||
double d2 = this.getY();
|
||||
double d3 = this.getZ();
|
||||
@@ -368,7 +369,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
d3 = (double) landedPosition.getZ() + 0.5D + d5 / d6 * 0.5D;
|
||||
}
|
||||
|
||||
- float f = (float) Mth.ceil(this.fallDistance - 3.0F);
|
||||
+ float f = (float) Mth.ceil(this.fallDistance - this.safeFallDistance); // Purpur
|
||||
double d7 = Math.min((double) (0.2F + f / 15.0F), 2.5D);
|
||||
int i = (int) (150.0D * d7);
|
||||
|
||||
@@ -2117,7 +2118,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP);
|
||||
float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1);
|
||||
|
||||
- return Mth.ceil((fallDistance - 3.0F - f2) * damageMultiplier);
|
||||
+ return Mth.ceil((fallDistance - this.safeFallDistance - f2) * damageMultiplier); // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
index 24fb38499092d8cbee3818bf5c873a55465b1edb..3170f9044f18b8c609433ddbd3ef9ac330644a0f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||
@@ -386,7 +386,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||
|
||||
@Override
|
||||
protected int calculateFallDamage(float fallDistance, float damageMultiplier) {
|
||||
- return Mth.ceil((fallDistance * 0.5F - 3.0F) * damageMultiplier);
|
||||
+ return Mth.ceil((fallDistance * 0.5F - this.safeFallDistance) * damageMultiplier);
|
||||
}
|
||||
|
||||
protected int getInventorySize() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
index 2a30499fd6f4a1340f6911f0f7f079bcbe8576a3..c3c0fbe71c9af1125c80698865cb9eaf42d4a1c5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
|
||||
@@ -13,6 +13,7 @@ import net.minecraft.world.level.LevelReader;
|
||||
public class Giant extends Monster {
|
||||
public Giant(EntityType<? extends Giant> type, Level world) {
|
||||
super(type, world);
|
||||
+ this.safeFallDistance = 10.0F; // Purpur
|
||||
}
|
||||
|
||||
// Purpur start
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index 52c70c2793209aadb88bd4c5f45340747271d3d7..e25c95a904820a84ba18976a30faff289682a47f 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -1210,4 +1210,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
this.getHandle().setYBodyRot(bodyYaw);
|
||||
}
|
||||
// Paper end - body yaw API
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
+ public float getSafeFallDistance() {
|
||||
+ return getHandle().safeFallDistance;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setSafeFallDistance(float safeFallDistance) {
|
||||
+ getHandle().safeFallDistance = safeFallDistance;
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
Reference in New Issue
Block a user