mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-06-23 02:37:47 +02:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@70f253f3 Update ItemType PaperMC/Paper@774a32e8 sulfur cube archetype registry PaperMC/Paper@f2ebae60 update legacy ItemType generic type PaperMC/Paper@93feb440 deprecate PigZapEvent PaperMC/Paper@73725c6b update to pre-5 PaperMC/Paper@5357d03b fix serialization error when creating empty flat world PaperMC/Paper@620da256 expand CreeperIgniteEvent to cover minecart tnt and sulfur cube
This commit is contained in:
@@ -2730,10 +2730,10 @@ index 5d1e0d44163b9f29dc824b46b7b983456a273419..f54a14a1e434cbfedf709d3b1495f2ae
|
||||
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
||||
this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers());
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d452f5f3839 100644
|
||||
index f960bb265bc5a4b350d24c9d1caafb3a06068df0..c0ffda7c18461494aee68aac2d99a660e3b21dcf 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -91,6 +91,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -92,6 +92,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
private final net.minecraft.world.level.Explosion explosionSource; // Paper - reusable source for CraftTNTPrimed.getSource()
|
||||
private @Nullable BlockPos podium;
|
||||
// Paper end
|
||||
@@ -2741,7 +2741,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
|
||||
public EnderDragon(final EntityType<? extends EnderDragon> type, final Level level) {
|
||||
super(EntityTypes.ENDER_DRAGON, level);
|
||||
@@ -107,6 +108,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -108,6 +109,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.noPhysics = true;
|
||||
this.phaseManager = new EnderDragonPhaseManager(this);
|
||||
this.explosionSource = new net.minecraft.world.level.ServerExplosion(level.getMinecraftWorld(), this, null, null, new Vec3(Double.NaN, Double.NaN, Double.NaN), Float.NaN, true, net.minecraft.world.level.Explosion.BlockInteraction.DESTROY); // Paper
|
||||
@@ -2779,7 +2779,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
}
|
||||
|
||||
public void setDragonFight(final EnderDragonFight fight) {
|
||||
@@ -121,6 +153,17 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -122,6 +154,17 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
return this.fightOrigin;
|
||||
}
|
||||
|
||||
@@ -2797,7 +2797,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
||||
}
|
||||
@@ -170,6 +213,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -171,6 +214,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
public void aiStep() {
|
||||
@@ -2835,7 +2835,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.processFlappingMovement();
|
||||
if (this.level().isClientSide()) {
|
||||
this.setHealth(this.getHealth());
|
||||
@@ -198,6 +272,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -199,6 +273,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
this.oFlapTime = this.flapTime;
|
||||
if (this.isDeadOrDying()) {
|
||||
@@ -2843,7 +2843,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
float xo = (this.random.nextFloat() - 0.5F) * 8.0F;
|
||||
float yo = (this.random.nextFloat() - 0.5F) * 4.0F;
|
||||
float zo = (this.random.nextFloat() - 0.5F) * 8.0F;
|
||||
@@ -207,9 +282,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -208,9 +283,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
Vec3 movement = this.getDeltaMovement();
|
||||
float flapSpeed = 0.2F / ((float)movement.horizontalDistance() * 10.0F + 1.0F);
|
||||
flapSpeed *= (float)Math.pow(2.0, movement.y);
|
||||
@@ -2855,7 +2855,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.flapTime += flapSpeed * 0.5F;
|
||||
} else {
|
||||
this.flapTime += flapSpeed;
|
||||
@@ -220,7 +295,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -221,7 +296,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.flapTime = 0.5F;
|
||||
} else {
|
||||
this.flightHistory.record(this.getY(), this.getYRot());
|
||||
@@ -2864,7 +2864,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
DragonPhaseInstance currentPhase = this.phaseManager.getCurrentPhase();
|
||||
currentPhase.doServerTick(level);
|
||||
if (this.phaseManager.getCurrentPhase() != currentPhase) {
|
||||
@@ -291,7 +366,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -292,7 +367,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.tickPart(this.body, ss1 * 0.5F, 0.0, -cc1 * 0.5F);
|
||||
this.tickPart(this.wing1, cc1 * 4.5F, 2.0, ss1 * 4.5F);
|
||||
this.tickPart(this.wing2, cc1 * -4.5F, 2.0, ss1 * -4.5F);
|
||||
@@ -2873,7 +2873,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.knockBack(
|
||||
serverLevel,
|
||||
serverLevel.getEntities(
|
||||
@@ -339,9 +414,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -340,9 +415,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
|
||||
if (this.level() instanceof ServerLevel level) {
|
||||
@@ -4356,7 +4356,7 @@ index 96776d23370736da3408e6a86ed89b7f3d686732..0ac7a442a0ea79f190aceb60b771d616
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 6b89d25aa130c9b7fe7f6d27f1d5f393c2954778..601a54820df95a566cec6079715af166f912df70 100644
|
||||
index 7f79c8e4e5874d2ce3a1a58b96df698c3f774011..7b3ab0515bae1963cdd2319f097bfffb4d12f4e5 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -129,6 +129,28 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
@@ -974,10 +974,10 @@ index f54a14a1e434cbfedf709d3b1495f2ae9ae4f11f..acf623ba0ab1f1d6c98af1a83cddd634
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514aa7bc3f8 100644
|
||||
index c0ffda7c18461494aee68aac2d99a660e3b21dcf..ffd612896a30ebff55906baba94150eb25fd8e98 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -164,6 +164,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -165,6 +165,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -991,7 +991,7 @@ index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
||||
}
|
||||
@@ -1065,7 +1072,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -1068,7 +1075,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
protected float sanitizeScale(final float scale) {
|
||||
@@ -1501,7 +1501,7 @@ index 0ac7a442a0ea79f190aceb60b771d616b377e613..22c20e4360473cdbe9cda8bb7b3b30be
|
||||
+ }
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 601a54820df95a566cec6079715af166f912df70..8a12c35177a745e94c2a4ced86994114fac933f5 100644
|
||||
index 7b3ab0515bae1963cdd2319f097bfffb4d12f4e5..a966d253af27d5a8cc89a2454cf60377bdf7ce62 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -151,6 +151,20 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
@@ -131,10 +131,10 @@ index f0c4ad3715322bf1a5a60edd870b34a15949a77f..80a65dba81ab82cdb9bd43d1878e7455
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 6883bd42f9d124c6421d1eb332f04514aa7bc3f8..1294dc666be270b4c7b335b7f2786b9b68bededc 100644
|
||||
index ffd612896a30ebff55906baba94150eb25fd8e98..2597ee3ca93653af04b5e620f3909c3791369bf0 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -536,7 +536,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -537,7 +537,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
BlockPos blockPos = new BlockPos(x, y, z);
|
||||
BlockState state = level.getBlockState(blockPos);
|
||||
if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) {
|
||||
|
||||
@@ -657,10 +657,10 @@ index 66e58482f8422e5478b29f82271489d0449ceddb..cdc12cabee85c7090ff317068a98b0ac
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 1294dc666be270b4c7b335b7f2786b9b68bededc..5ad833b7673e73a1a5120b335f8980f639a9b2eb 100644
|
||||
index 2597ee3ca93653af04b5e620f3909c3791369bf0..f445c81d1054b897f8489cdb9cc9bb04096e3835 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -171,6 +171,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -172,6 +172,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1029,7 +1029,7 @@ index 22c20e4360473cdbe9cda8bb7b3b30be85f16fe6..3c09f472ba54f8929782ac6a080ceabf
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 8a12c35177a745e94c2a4ced86994114fac933f5..f777ed1de1ec159fed3019bd5bfb711b9aad6146 100644
|
||||
index a966d253af27d5a8cc89a2454cf60377bdf7ce62..f43d33605e8d0d4ade0a5c6269bccb4d10668543 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -165,6 +165,13 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
Reference in New Issue
Block a user