Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@1e67ca8e Add SpawnReason for REANIMATE a Copper Golem Statue (#13126)
PaperMC/Paper@e75678b6 Update Mache for Java 25 setup runtime support
PaperMC/Paper@bac3da12 Migrate external JD links from javadoc.io to javadocs.dev (#13205)
PaperMC/Paper@080a72f2 [ci/skip] Add myself (roro1506HD) to MIT licensing (#13212)
PaperMC/Paper@d98142ef Rework API teleportation to better align with Vanilla (#13181)
This commit is contained in:
granny
2025-10-24 21:08:35 -07:00
parent efc7621513
commit 3ca0d663e7
16 changed files with 104 additions and 115 deletions

View File

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

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/entity/Entity.java --- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -1261,4 +_,59 @@ @@ -1306,4 +_,59 @@
*/ */
void broadcastHurtAnimation(@NotNull java.util.Collection<Player> players); void broadcastHurtAnimation(@NotNull java.util.Collection<Player> players);
// Paper end - broadcast hurt animation // Paper end - broadcast hurt animation

View File

@@ -30,7 +30,7 @@ index e35fb4f48a16780d8728ac1c7bb0fc64e2ded4e7..2c7039281854cc9b21e2badb62389522
/* Drop global time updates /* Drop global time updates
if (this.tickCount % 20 == 0) { if (this.tickCount % 20 == 0) {
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index d814aa9654163cdd8f6f938276d820a85036f04a..7dedba7fa332e02c4655424fea5263fee56222d8 100644 index 6f1a3d9323f3d84b6b0f5d443c0875a98e435f59..b8b641caf8b82f4071bfeff37d50ef65ff2a0505 100644
--- a/net/minecraft/server/level/ServerLevel.java --- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -224,6 +224,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -42,7 +42,7 @@ index d814aa9654163cdd8f6f938276d820a85036f04a..7dedba7fa332e02c4655424fea5263fe
@Override @Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) { public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 1dc24601d40d54dd8db21ce3bec4fb9b4bf24f08..5b910e27daa43ba2ac29d29e8ecc1b0b0897fe84 100644 index 1e490bcbeee18ca80ea79c9300863968894556bc..20f126bac6ed085e6c4a8b52480b2b8cfa679d95 100644
--- a/net/minecraft/server/level/ServerPlayer.java --- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java
@@ -774,6 +774,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -774,6 +774,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -62,7 +62,7 @@ index 1dc24601d40d54dd8db21ce3bec4fb9b4bf24f08..5b910e27daa43ba2ac29d29e8ecc1b0b
private void updatePlayerAttributes() { private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 753d668313a6e0b180975fb91ae7741f7ca19119..b39d3713b0ece3ae08f1c1c359d114011117192f 100644 index a2d5ba92d03696d52a27f514336c6c06fea4e4af..5587142a35ef5887de3d962dd04caa6d76e462d0 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2862,6 +2862,8 @@ public class ServerGamePacketListenerImpl @@ -2862,6 +2862,8 @@ public class ServerGamePacketListenerImpl
@@ -75,10 +75,10 @@ index 753d668313a6e0b180975fb91ae7741f7ca19119..b39d3713b0ece3ae08f1c1c359d11401
if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) { if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index faba848cf70bac2ac280565b0de3c2342be8e977..75039c43a1f7d6f22fdebd1bac56a028354d1527 100644 index 7b86550bea4c78e904a60ee234cb711ce04e1076..1c318158e1cc016cf7f26d352519f45bc244cee8 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -3361,6 +3361,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -3353,6 +3353,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -92,7 +92,7 @@ index faba848cf70bac2ac280565b0de3c2342be8e977..75039c43a1f7d6f22fdebd1bac56a028
} }
} }
@@ -3401,6 +3408,14 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -3393,6 +3400,14 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -107,7 +107,7 @@ index faba848cf70bac2ac280565b0de3c2342be8e977..75039c43a1f7d6f22fdebd1bac56a028
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) { if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -5468,4 +5483,44 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -5435,4 +5450,44 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition()); return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -3596,7 +3596,7 @@ index 9fb7b3e4cbbde0f1d45d9fffb648240fbd2f3d49..70cf903d95d35b539e9a299a4035c8dd
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true).setUnseenMemoryTicks(300));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false).setUnseenMemoryTicks(300));
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index 226286194e662e61faed17e7d4c53b5f776779f3..1d888ebabecfd1beebdf718c5d771b312070245a 100644 index 695fbbc996918339192a978c35a74ad599453796..efe4ed636d85624e4122880f95c634ffa7a3891a 100644
--- a/net/minecraft/world/entity/monster/Ghast.java --- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -52,11 +52,35 @@ public class Ghast extends Mob implements Enemy { @@ -52,11 +52,35 @@ public class Ghast extends Mob implements Enemy {
@@ -3651,7 +3651,7 @@ index 226286194e662e61faed17e7d4c53b5f776779f3..1d888ebabecfd1beebdf718c5d771b31
} }
@Override @Override
@@ -231,7 +264,7 @@ public class Ghast extends Mob implements Enemy { @@ -236,7 +269,7 @@ public class Ghast extends Mob implements Enemy {
} }
} }
@@ -3660,7 +3660,7 @@ index 226286194e662e61faed17e7d4c53b5f776779f3..1d888ebabecfd1beebdf718c5d771b31
private final Mob ghast; private final Mob ghast;
private int floatDuration; private int floatDuration;
private final boolean careful; private final boolean careful;
@@ -245,7 +278,7 @@ public class Ghast extends Mob implements Enemy { @@ -250,7 +283,7 @@ public class Ghast extends Mob implements Enemy {
} }
@Override @Override
@@ -3704,7 +3704,7 @@ index 0de6a20a3fed53bd11a0152de6953bfaecc85289..dcbe6bbce0baa4fad7fe180944beeb6c
return Monster.createMonsterAttributes() return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0) .add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d22266f95627d 100644 index c72b599a98960372b301e9ac0f5f0ca5ad330a32..3c20818bf6f86cb34666d12084caf13d409a35ca 100644
--- a/net/minecraft/world/entity/monster/Guardian.java --- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -66,14 +66,35 @@ public class Guardian extends Monster { @@ -66,14 +66,35 @@ public class Guardian extends Monster {
@@ -3751,7 +3751,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 10, true, false, new Guardian.GuardianAttackSelector(this))); this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 10, true, false, new Guardian.GuardianAttackSelector(this)));
} }
@@ -344,7 +366,7 @@ public class Guardian extends Monster { @@ -349,7 +371,7 @@ public class Guardian extends Monster {
@Override @Override
public void travel(Vec3 travelVector) { public void travel(Vec3 travelVector) {
if (this.isInWater()) { if (this.isInWater()) {
@@ -3760,7 +3760,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
this.move(MoverType.SELF, this.getDeltaMovement()); this.move(MoverType.SELF, this.getDeltaMovement());
this.setDeltaMovement(this.getDeltaMovement().scale(0.9)); this.setDeltaMovement(this.getDeltaMovement().scale(0.9));
if (!this.isMoving() && this.getTarget() == null) { if (!this.isMoving() && this.getTarget() == null) {
@@ -452,7 +474,7 @@ public class Guardian extends Monster { @@ -457,7 +479,7 @@ public class Guardian extends Monster {
} }
} }
@@ -3769,7 +3769,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
private final Guardian guardian; private final Guardian guardian;
public GuardianMoveControl(Guardian mob) { public GuardianMoveControl(Guardian mob) {
@@ -460,8 +482,17 @@ public class Guardian extends Monster { @@ -465,8 +487,17 @@ public class Guardian extends Monster {
this.guardian = mob; this.guardian = mob;
} }
@@ -3788,7 +3788,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
if (this.operation == MoveControl.Operation.MOVE_TO && !this.guardian.getNavigation().isDone()) { if (this.operation == MoveControl.Operation.MOVE_TO && !this.guardian.getNavigation().isDone()) {
Vec3 vec3 = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ()); Vec3 vec3 = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ());
double len = vec3.length(); double len = vec3.length();
@@ -471,7 +502,7 @@ public class Guardian extends Monster { @@ -476,7 +507,7 @@ public class Guardian extends Monster {
float f = (float)(Mth.atan2(vec3.z, vec3.x) * 180.0F / (float)Math.PI) - 90.0F; float f = (float)(Mth.atan2(vec3.z, vec3.x) * 180.0F / (float)Math.PI) - 90.0F;
this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), f, 90.0F)); this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), f, 90.0F));
this.guardian.yBodyRot = this.guardian.getYRot(); this.guardian.yBodyRot = this.guardian.getYRot();
@@ -3867,7 +3867,7 @@ index 53e4a9b99bbaac7438e6d8380fbcd9d5ffe61fb9..162986914c6718438b7e1d5408bdbe5a
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true).setUnseenMemoryTicks(300));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false).setUnseenMemoryTicks(300));
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index 034a41573c330b2366fb305bb0796293d5d6a187..9be4861fc5cf5e9f8f562785eb3e857b6c1d3585 100644 index 2323a7315878e38710f8f31f7806ebda94077067..8b58e0a76c9651cacacb503391ef9b6a53a3ddbc 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java --- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java +++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -24,6 +24,28 @@ public class MagmaCube extends Slime { @@ -24,6 +24,28 @@ public class MagmaCube extends Slime {
@@ -3899,7 +3899,7 @@ index 034a41573c330b2366fb305bb0796293d5d6a187..9be4861fc5cf5e9f8f562785eb3e857b
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F); return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
} }
@@ -71,6 +93,7 @@ public class MagmaCube extends Slime { @@ -76,6 +98,7 @@ public class MagmaCube extends Slime {
float f = this.getSize() * 0.1F; float f = this.getSize() * 0.1F;
this.setDeltaMovement(deltaMovement.x, this.getJumpPower() + f, deltaMovement.z); this.setDeltaMovement(deltaMovement.x, this.getJumpPower() + f, deltaMovement.z);
this.hasImpulse = true; this.hasImpulse = true;
@@ -4261,7 +4261,7 @@ index d64e4b7175a017c92b3ffa4c2b0271c772a90030..c39072d9265b2640e3bd701dacb54aa6
protected void defineSynchedData(SynchedEntityData.Builder builder) { protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder); super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7ec0d59c0 100644 index 7abd42fa34c80e868875f0ff3986a85d1a6dcb8c..e46fd8c9f9966dab8b27004db0bc7028e95dedf2 100644
--- a/net/minecraft/world/entity/monster/Slime.java --- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java
@@ -59,6 +59,7 @@ public class Slime extends Mob implements Enemy { @@ -59,6 +59,7 @@ public class Slime extends Mob implements Enemy {
@@ -4321,7 +4321,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
this.targetSelector this.targetSelector
.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, (entity, level) -> Math.abs(entity.getY() - this.getY()) <= 4.0)); .addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, (entity, level) -> Math.abs(entity.getY() - this.getY()) <= 4.0));
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true));
@@ -355,6 +392,7 @@ public class Slime extends Mob implements Enemy { @@ -360,6 +397,7 @@ public class Slime extends Mob implements Enemy {
Vec3 deltaMovement = this.getDeltaMovement(); Vec3 deltaMovement = this.getDeltaMovement();
this.setDeltaMovement(deltaMovement.x, this.getJumpPower(), deltaMovement.z); this.setDeltaMovement(deltaMovement.x, this.getJumpPower(), deltaMovement.z);
this.hasImpulse = true; this.hasImpulse = true;
@@ -4329,7 +4329,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
} }
@Nullable @Nullable
@@ -519,7 +557,7 @@ public class Slime extends Mob implements Enemy { @@ -524,7 +562,7 @@ public class Slime extends Mob implements Enemy {
} }
} }
@@ -4338,7 +4338,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
private float yRot; private float yRot;
private int jumpDelay; private int jumpDelay;
private final Slime slime; private final Slime slime;
@@ -537,21 +575,33 @@ public class Slime extends Mob implements Enemy { @@ -542,21 +580,33 @@ public class Slime extends Mob implements Enemy {
} }
public void setWantedMovement(double speedModifier) { public void setWantedMovement(double speedModifier) {
@@ -4375,7 +4375,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
if (this.jumpDelay-- <= 0) { if (this.jumpDelay-- <= 0) {
this.jumpDelay = this.slime.getJumpDelay(); this.jumpDelay = this.slime.getJumpDelay();
if (this.isAggressive) { if (this.isAggressive) {
@@ -568,7 +618,7 @@ public class Slime extends Mob implements Enemy { @@ -573,7 +623,7 @@ public class Slime extends Mob implements Enemy {
this.mob.setSpeed(0.0F); this.mob.setSpeed(0.0F);
} }
} else { } else {
@@ -4814,7 +4814,7 @@ index 862d32470a2eb40c947eb1ca4554737061d7bf6e..f9c119d38c2812cfeeb775e728f6c751
protected void defineSynchedData(SynchedEntityData.Builder builder) { protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder); super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index d8f6612f65d9dd5f46f947c4748a9cde5cb98312..d52e83ee890ab278440a69972ad83d4dd2f972a6 100644 index 08997d05ff75f68cd36c90eb8730dc44a052d5b8..d4f036c7d4b6652c5585f1ce5af9b26f9ed5b856 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java --- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -64,6 +64,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -64,6 +64,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -4923,7 +4923,7 @@ index a5fb6c8247bbf41602984b094c09ed07394e9589..c3c4dfb89c807020c4147140bc23ba1c
} }
} }
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 172783861b8704dc9c46c8c2f6be2d24c08e705b..d852f8cff28e3ff2189896d713d37a3400b0a70b 100644 index 5af3c7a307e15680d15c4621870e6c17ea49c288..f304dea5ee2216b5b239dc5ce145f0aa425f5938 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -95,6 +95,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -95,6 +95,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -4959,7 +4959,7 @@ index 172783861b8704dc9c46c8c2f6be2d24c08e705b..d852f8cff28e3ff2189896d713d37a34
profilerFiller.pop(); profilerFiller.pop();
HoglinAi.updateActivity(this); HoglinAi.updateActivity(this);
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index fbbf7364b07ea49116dd86fa9722fa341978bc19..0dc2d7f71c06ba575c2ac97a4be6b2466d5407d9 100644 index 072358efcc92f510d5281b7f37f8c36df85c2e4c..a74268846a160aa2e2e8688b1562216c2e248726 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -136,6 +136,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -136,6 +136,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -4986,7 +4986,7 @@ index fbbf7364b07ea49116dd86fa9722fa341978bc19..0dc2d7f71c06ba575c2ac97a4be6b246
@Override @Override
protected void addAdditionalSaveData(ValueOutput output) { protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output); super.addAdditionalSaveData(output);
@@ -310,6 +327,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -315,6 +332,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
protected void customServerAiStep(ServerLevel level) { protected void customServerAiStep(ServerLevel level) {
ProfilerFiller profilerFiller = Profiler.get(); ProfilerFiller profilerFiller = Profiler.get();
profilerFiller.push("piglinBrain"); profilerFiller.push("piglinBrain");

View File

@@ -1161,7 +1161,7 @@ index 70cf903d95d35b539e9a299a4035c8ddde5e4b97..a5243b7969fec5d60b94368caf5e962c
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index 1d888ebabecfd1beebdf718c5d771b312070245a..fdbf14ff7e62d8db023b3d3bdf4ae685b5f085a8 100644 index efe4ed636d85624e4122880f95c634ffa7a3891a..9e4048d55a386aad22f2054632dff457b10f1068 100644
--- a/net/minecraft/world/entity/monster/Ghast.java --- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java +++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy { @@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy {
@@ -1201,7 +1201,7 @@ index dcbe6bbce0baa4fad7fe180944beeb6ca4026f7d..416bb85fc87b5f9e372f33df8fe27f12
return Monster.createMonsterAttributes() return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0) .add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 339c81d0a9833e762ca4fc63430d22266f95627d..c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1 100644 index 3c20818bf6f86cb34666d12084caf13d409a35ca..70fbfe1d4d100d742712d19daf69c6b93891dab6 100644
--- a/net/minecraft/world/entity/monster/Guardian.java --- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java +++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -90,6 +90,14 @@ public class Guardian extends Monster { @@ -90,6 +90,14 @@ public class Guardian extends Monster {
@@ -1264,7 +1264,7 @@ index 162986914c6718438b7e1d5408bdbe5a4d3e3a68..b6872c94d769346ed2a8bb2406fc2b39
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index 9be4861fc5cf5e9f8f562785eb3e857b6c1d3585..f39611741c4dacec2b1ad2d25ca9b7d47c188049 100644 index 8b58e0a76c9651cacacb503391ef9b6a53a3ddbc..db9e4dff83640b1e499db944a0c1cf3b869bc314 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java --- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java +++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -46,6 +46,28 @@ public class MagmaCube extends Slime { @@ -46,6 +46,28 @@ public class MagmaCube extends Slime {
@@ -1442,7 +1442,7 @@ index c39072d9265b2640e3bd701dacb54aa629f3b230..8d1f83ba8042435a0dc1e6e1fb987317
protected void defineSynchedData(SynchedEntityData.Builder builder) { protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder); super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 3b9c4f2623ddecf54b139e032d8056a7ec0d59c0..beb504f9a5de48d9631585648a98cd3d2d682d76 100644 index e46fd8c9f9966dab8b27004db0bc7028e95dedf2..5af9f8182fa8bc3720cf30ed073ecc8050a76b43 100644
--- a/net/minecraft/world/entity/monster/Slime.java --- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java +++ b/net/minecraft/world/entity/monster/Slime.java
@@ -101,6 +101,39 @@ public class Slime extends Mob implements Enemy { @@ -101,6 +101,39 @@ public class Slime extends Mob implements Enemy {
@@ -1700,7 +1700,7 @@ index f9c119d38c2812cfeeb775e728f6c751bf748c85..1de823b94ee0e53109b4dd3e726f721e
protected void defineSynchedData(SynchedEntityData.Builder builder) { protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder); super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index d52e83ee890ab278440a69972ad83d4dd2f972a6..819faafec711edc6e837a2f52a318910f4ef0a5c 100644 index d4f036c7d4b6652c5585f1ce5af9b26f9ed5b856..b78ba21e6aa753e3df6545432038daa0070fa7b7 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java --- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -81,6 +81,14 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -81,6 +81,14 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1718,7 +1718,7 @@ index d52e83ee890ab278440a69972ad83d4dd2f972a6..819faafec711edc6e837a2f52a318910
@Override @Override
public void setPersistentAngerTarget(@Nullable UUID target) { public void setPersistentAngerTarget(@Nullable UUID target) {
this.persistentAngerTarget = target; this.persistentAngerTarget = target;
@@ -261,7 +269,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -266,7 +274,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@Override @Override
protected void randomizeReinforcementsChance() { protected void randomizeReinforcementsChance() {
@@ -1747,7 +1747,7 @@ index c3c4dfb89c807020c4147140bc23ba1ce5cfe888..f31a29531cc7d63bed5a4bcbe3986bcc
protected BodyRotationControl createBodyControl() { protected BodyRotationControl createBodyControl() {
return new Creaking.CreakingBodyRotationControl(this); return new Creaking.CreakingBodyRotationControl(this);
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index d852f8cff28e3ff2189896d713d37a3400b0a70b..1062df067d6b98ffba27864450d8a867446aae79 100644 index f304dea5ee2216b5b239dc5ce145f0aa425f5938..b468ad62723c20b9961c8b4b9c0c34a9518d98ea 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -112,6 +112,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -112,6 +112,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1766,7 +1766,7 @@ index d852f8cff28e3ff2189896d713d37a3400b0a70b..1062df067d6b98ffba27864450d8a867
public void setTimeInOverworld(int timeInOverworld) { public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld; this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 0dc2d7f71c06ba575c2ac97a4be6b2466d5407d9..19211c0d78113da7827a071fd510b4f36e63a9f2 100644 index a74268846a160aa2e2e8688b1562216c2e248726..471d4d375eb437a42361f60e27919c209221d743 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -153,6 +153,14 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -153,6 +153,14 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 1d6f77ade1456fd4ffc425e0c75ea98e86be7a42..72d24ebbbcd7d6db849190ca646ecdaf1053d0bb 100644 index 235c179000b389c3b30bbe1764b837b634546512..f6b86ee7b9e5cc1b3ce0d5097e1ba8b566038a11 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -929,6 +929,27 @@ public abstract class PlayerList { @@ -882,6 +882,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player); this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API } // Paper - Add sendOpLevel API

View File

@@ -227,10 +227,10 @@ index 23722456ce82dcc6b571b96e5c9b0d70005f9c2e..97662c39001b4433601f46ef83f28c0e
continue; continue;
} }
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 19211c0d78113da7827a071fd510b4f36e63a9f2..4e1a7b6caf8c0a3721a3a799261d7b63301c3b29 100644 index 471d4d375eb437a42361f60e27919c209221d743..de65ff0bf3de1d20360bc0ebb1cd3dc48c5560fe 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -438,7 +438,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -443,7 +443,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@Override @Override
public boolean wantsToPickUp(ServerLevel level, ItemStack stack) { public boolean wantsToPickUp(ServerLevel level, ItemStack stack) {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev> Co-authored by: Encode42 <me@encode42.dev>
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 75039c43a1f7d6f22fdebd1bac56a028354d1527..906848dce743c66b18899c21d408d28ad6dc642c 100644 index 1c318158e1cc016cf7f26d352519f45bc244cee8..1b9f3e94206cc5627ca6c98f142766d4aaa7f4d7 100644
--- a/net/minecraft/world/entity/Entity.java --- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java
@@ -544,6 +544,24 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name @@ -543,6 +543,24 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
} }
// Purpur end - Add canSaveToDisk to Entity // Purpur end - Add canSaveToDisk to Entity

View File

@@ -52,15 +52,15 @@
Entity entity = damageSource.getEntity(); Entity entity = damageSource.getEntity();
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false. if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
!(entity instanceof Player player && !this.canHarmPlayer(player)) !(entity instanceof Player player && !this.canHarmPlayer(player))
@@ -1549,6 +_,7 @@ @@ -1545,6 +_,7 @@
serverLevel.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved(); profilerFiller.pop();
// CraftBukkit end profilerFiller.push("placing");
+ this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(exit); // Purpur - Fix stuck in portals + this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(exit); // Purpur - Fix stuck in portals
this.setServerLevel(level); this.setServerLevel(level);
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
this.connection.resetPosition(); this.connection.resetPosition();
@@ -1668,7 +_,7 @@ @@ -1646,7 +_,7 @@
new AABB(vec3.x() - 8.0, vec3.y() - 5.0, vec3.z() - 8.0, vec3.x() + 8.0, vec3.y() + 5.0, vec3.z() + 8.0), new AABB(vec3.x() - 8.0, vec3.y() - 5.0, vec3.z() - 8.0, vec3.x() + 8.0, vec3.y() + 5.0, vec3.z() + 8.0),
monster -> monster.isPreventingPlayerRest(this.level(), this) monster -> monster.isPreventingPlayerRest(this.level(), this)
); );
@@ -69,7 +69,7 @@
return Either.left(Player.BedSleepingProblem.NOT_SAFE); return Either.left(Player.BedSleepingProblem.NOT_SAFE);
} }
} }
@@ -1705,7 +_,19 @@ @@ -1683,7 +_,19 @@
CriteriaTriggers.SLEPT_IN_BED.trigger(this); CriteriaTriggers.SLEPT_IN_BED.trigger(this);
}); });
if (!this.level().canSleepThroughNights()) { if (!this.level().canSleepThroughNights()) {
@@ -90,7 +90,7 @@
} }
this.level().updateSleepingPlayerList(); this.level().updateSleepingPlayerList();
@@ -1797,6 +_,7 @@ @@ -1775,6 +_,7 @@
@Override @Override
public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) { public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) {
@@ -98,7 +98,7 @@
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos())); this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText)); this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText));
} }
@@ -2106,6 +_,26 @@ @@ -2084,6 +_,26 @@
this.lastSentExp = -1; // CraftBukkit - Added to reset this.lastSentExp = -1; // CraftBukkit - Added to reset
} }
@@ -125,7 +125,7 @@
@Override @Override
public void displayClientMessage(Component message, boolean overlay) { public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay); this.sendSystemMessage(message, overlay);
@@ -2327,6 +_,20 @@ @@ -2318,6 +_,20 @@
); );
} }
@@ -146,7 +146,7 @@
public void sendSystemMessage(Component message) { public void sendSystemMessage(Component message) {
this.sendSystemMessage(message, false); this.sendSystemMessage(message, false);
} }
@@ -2465,7 +_,67 @@ @@ -2456,7 +_,67 @@
public void resetLastActionTime() { public void resetLastActionTime() {
this.lastActionTime = Util.getMillis(); this.lastActionTime = Util.getMillis();
@@ -215,7 +215,7 @@
public ServerStatsCounter getStats() { public ServerStatsCounter getStats() {
return this.stats; return this.stats;
@@ -3109,4 +_,56 @@ @@ -3097,4 +_,65 @@
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity(); return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
} }
// CraftBukkit end // CraftBukkit end
@@ -235,9 +235,18 @@
+ +
+ ServerLevel toLevel = ((org.bukkit.craftbukkit.CraftWorld) to.getWorld()).getHandle(); + ServerLevel toLevel = ((org.bukkit.craftbukkit.CraftWorld) to.getWorld()).getHandle();
+ if (this.level() == toLevel) { + if (this.level() == toLevel) {
+ this.connection.teleport(to); + this.connection.internalTeleport(to);
+ } else { + } else {
+ this.server.getPlayerList().respawn(this, true, RemovalReason.KILLED, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH, to); + this.teleport(new TeleportTransition(
+ toLevel,
+ org.bukkit.craftbukkit.util.CraftLocation.toVec3(to),
+ Vec3.ZERO,
+ to.getYaw(),
+ to.getPitch(),
+ net.minecraft.world.entity.Relative.ALL,
+ TeleportTransition.DO_NOTHING,
+ org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.UNKNOWN
+ ));
+ } + }
+ } + }
+ // Purpur end - Add option to teleport to spawn if outside world border + // Purpur end - Add option to teleport to spawn if outside world border

View File

@@ -16,7 +16,7 @@
ServerLevel serverLevel = player.level(); ServerLevel serverLevel = player.level();
player.awardStat(Stats.LEAVE_GAME); player.awardStat(Stats.LEAVE_GAME);
// CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
@@ -810,6 +_,20 @@ @@ -763,6 +_,20 @@
} }
} }
@@ -37,7 +37,7 @@
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) { public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
for (ServerPlayer serverPlayer : this.players) { for (ServerPlayer serverPlayer : this.players) {
if (serverPlayer.level().dimension() == dimension) { if (serverPlayer.level().dimension() == dimension) {
@@ -904,6 +_,7 @@ @@ -857,6 +_,7 @@
} else { } else {
b = (byte)(24 + permLevel); b = (byte)(24 + permLevel);
} }
@@ -45,7 +45,7 @@
player.connection.send(new ClientboundEntityEventPacket(player, b)); player.connection.send(new ClientboundEntityEventPacket(player, b));
} }
@@ -916,7 +_,7 @@ @@ -869,7 +_,7 @@
// Paper start - whitelist verify event / login event // Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) { public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {

View File

@@ -7,8 +7,8 @@
+ public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur - Configurable entity base attributes + public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur - Configurable entity base attributes
// CraftBukkit start // CraftBukkit start
private static final int CURRENT_LEVEL = 2; 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 snapTo static boolean isLevelAtLeast(ValueInput input, int level) {
@@ -282,8 +_,9 @@ @@ -281,8 +_,9 @@
public double xOld; public double xOld;
public double yOld; public double yOld;
public double zOld; public double zOld;
@@ -19,7 +19,7 @@
public int tickCount; public int tickCount;
private int remainingFireTicks; private int remainingFireTicks;
public boolean wasTouchingWater; public boolean wasTouchingWater;
@@ -317,8 +_,8 @@ @@ -316,8 +_,8 @@
public PortalProcessor portalProcess; public PortalProcessor portalProcess;
public int portalCooldown; public int portalCooldown;
private boolean invulnerable; private boolean invulnerable;
@@ -30,7 +30,7 @@
private boolean hasGlowingTag; private boolean hasGlowingTag;
private final Set<String> tags = new io.papermc.paper.util.SizeLimitedSet<>(new it.unimi.dsi.fastutil.objects.ObjectOpenHashSet<>(), MAX_ENTITY_TAG_COUNT); // Paper - fully limit tag size - replace set impl private final Set<String> tags = new io.papermc.paper.util.SizeLimitedSet<>(new it.unimi.dsi.fastutil.objects.ObjectOpenHashSet<>(), MAX_ENTITY_TAG_COUNT); // Paper - fully limit tag size - replace set impl
private final double[] pistonDeltas = new double[]{0.0, 0.0, 0.0}; private final double[] pistonDeltas = new double[]{0.0, 0.0, 0.0};
@@ -373,6 +_,7 @@ @@ -372,6 +_,7 @@
public long activatedTick = Integer.MIN_VALUE; public long activatedTick = Integer.MIN_VALUE;
public boolean isTemporarilyActive; public boolean isTemporarilyActive;
public long activatedImmunityTick = Integer.MIN_VALUE; public long activatedImmunityTick = Integer.MIN_VALUE;
@@ -38,7 +38,7 @@
public void inactiveTick() { public void inactiveTick() {
} }
@@ -535,10 +_,21 @@ @@ -534,10 +_,21 @@
} }
// Paper end - optimise entity tracker // Paper end - optimise entity tracker
@@ -60,7 +60,7 @@
this.position = Vec3.ZERO; this.position = Vec3.ZERO;
this.blockPosition = BlockPos.ZERO; this.blockPosition = BlockPos.ZERO;
this.chunkPosition = ChunkPos.ZERO; this.chunkPosition = ChunkPos.ZERO;
@@ -917,6 +_,7 @@ @@ -916,6 +_,7 @@
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end - Configurable nether ceiling damage // Paper end - Configurable nether ceiling damage
@@ -68,7 +68,7 @@
this.onBelowWorld(); this.onBelowWorld();
} }
} }
@@ -1942,7 +_,7 @@ @@ -1941,7 +_,7 @@
} }
public boolean fireImmune() { public boolean fireImmune() {
@@ -77,7 +77,7 @@
} }
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) { public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2642,6 +_,11 @@ @@ -2634,6 +_,11 @@
output.putBoolean("Paper.FreezeLock", true); output.putBoolean("Paper.FreezeLock", true);
} }
// Paper end // Paper end
@@ -89,7 +89,7 @@
} catch (Throwable var7) { } catch (Throwable var7) {
CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved");
@@ -2762,6 +_,9 @@ @@ -2754,6 +_,9 @@
} }
freezeLocked = input.getBooleanOr("Paper.FreezeLock", false); freezeLocked = input.getBooleanOr("Paper.FreezeLock", false);
// Paper end // Paper end
@@ -99,7 +99,7 @@
} catch (Throwable var7) { } catch (Throwable var7) {
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
@@ -3034,6 +_,7 @@ @@ -3026,6 +_,7 @@
if (this.isAlive() && this instanceof Leashable leashable2) { if (this.isAlive() && this instanceof Leashable leashable2) {
if (leashable2.getLeashHolder() == player) { if (leashable2.getLeashHolder() == player) {
if (!this.level().isClientSide()) { if (!this.level().isClientSide()) {
@@ -107,7 +107,7 @@
// Paper start - EntityUnleashEvent // Paper start - EntityUnleashEvent
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent( if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
leashable2, player, hand, !player.hasInfiniteMaterials(), true leashable2, player, hand, !player.hasInfiniteMaterials(), true
@@ -3458,15 +_,18 @@ @@ -3450,15 +_,18 @@
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -127,7 +127,7 @@
} }
} }
} }
@@ -3671,7 +_,7 @@ @@ -3663,7 +_,7 @@
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -136,8 +136,8 @@
} }
public int getAirSupply() { public int getAirSupply() {
@@ -4233,7 +_,7 @@ @@ -4200,7 +_,7 @@
// CraftBukkit end }
public boolean canUsePortal(boolean allowPassengers) { public boolean canUsePortal(boolean allowPassengers) {
- return (allowPassengers || !this.isPassenger()) && this.isAlive(); - return (allowPassengers || !this.isPassenger()) && this.isAlive();
@@ -145,7 +145,7 @@
} }
public boolean canTeleport(Level fromLevel, Level toLevel) { public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -4748,6 +_,12 @@ @@ -4715,6 +_,12 @@
return Mth.lerp(partialTick, this.yRotO, this.yRot); return Mth.lerp(partialTick, this.yRotO, this.yRot);
} }
@@ -158,7 +158,7 @@
// Paper start - optimise collisions // Paper start - optimise collisions
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) { public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
if (this.touchingUnloadedChunk()) { if (this.touchingUnloadedChunk()) {
@@ -5165,7 +_,7 @@ @@ -5132,7 +_,7 @@
} }
public float maxUpStep() { public float maxUpStep() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 15686e234b7e1a2833c0962fbead94c0cfd0a1e4..a80003a07834a9eafa554afd13afa13a3eac1c30 100644 index bf3674f8984dd0ee441e04f92b747f908d629953..132e045f3885146a9a6510c6ed51fcb85e1c47ce 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1348,4 +1348,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -1342,4 +1342,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null; return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null;
} }
@@ -36,10 +36,10 @@ index 15686e234b7e1a2833c0962fbead94c0cfd0a1e4..a80003a07834a9eafa554afd13afa13a
+ // Purpur end - Ridables + // Purpur end - Ridables
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index cc108383fa62b3ea5781c1ac58f9f8a24412e6c3..0b536e4ee904cba3a724d98d491185cfded3d723 100644 index 00af7ce338ea49375ce1a5e95d01fb24b1c43de8..691c7e393ff6a0d4b132f25b6de2b346b97f7169 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -517,6 +517,15 @@ public class CraftEventFactory { @@ -521,6 +521,15 @@ public class CraftEventFactory {
} }
craftServer.getPluginManager().callEvent(event); craftServer.getPluginManager().callEvent(event);
@@ -55,7 +55,7 @@ index cc108383fa62b3ea5781c1ac58f9f8a24412e6c3..0b536e4ee904cba3a724d98d491185cf
return event; return event;
} }
@@ -1049,6 +1058,7 @@ public class CraftEventFactory { @@ -1053,6 +1062,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager != null) { if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);

View File

@@ -16,34 +16,14 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index a80003a07834a9eafa554afd13afa13a3eac1c30..b605a2662b72fde523bbe22142e712b059d43a0a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -313,6 +313,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
boolean retainPassengers = flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS);
// Don't allow teleporting between worlds while keeping passengers
if (flagSet.contains(io.papermc.paper.entity.TeleportFlag.EntityState.RETAIN_PASSENGERS) && this.entity.isVehicle() && location.getWorld() != this.getWorld()) {
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d352b1130c287007ea12392cc613e6bb0449d14b..4eb7d90f38e744b51c11d334a44dacb0a9ac6956 100644 index ecb01b035d81a42911db1c8364e23ccba4a8b790..56bbaab57432a78e85bc0013cd7f991f662f0cd2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1426,6 +1426,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa @@ -1382,6 +1382,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
// Paper start - Teleport passenger API // Minecraft does not currently support teleporting players between worlds with passengers.
// Don't allow teleporting between worlds while keeping passengers // It causes them to be dismounted, and causes weird behavior.
if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) { if (location.getWorld() != this.getWorld() && !this.getHandle().passengers.isEmpty()) {
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false;
}
@@ -1447,6 +1448,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
}
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
+ if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent + if (!new org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent(entity.getBukkitEntity(), org.purpurmc.purpur.event.entity.EntityTeleportHinderedEvent.Reason.IS_VEHICLE, cause).callEvent()) // Purpur - Add EntityTeleportHinderedEvent
return false; return false;
} }

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev> Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index b605a2662b72fde523bbe22142e712b059d43a0a..11c1a0abad4efb65547c5b42869ec06bb74b4d59 100644 index 132e045f3885146a9a6510c6ed51fcb85e1c47ce..6ac0f9d208c41182b7c596ab809de41f07f265a9 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -124,6 +124,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -125,6 +125,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
} }
// Purpur end - Fire Immunity API // Purpur end - Fire Immunity API
@@ -24,10 +24,10 @@ index b605a2662b72fde523bbe22142e712b059d43a0a..11c1a0abad4efb65547c5b42869ec06b
Preconditions.checkArgument(entity != null, "Unknown entity"); Preconditions.checkArgument(entity != null, "Unknown entity");
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 74e2fc6e1f1c4513accaa4e9ad7f614021a4ea76..b266da70a69b8acfb0caec96af0399126d258fb0 100644 index 3feb3ee939ce3814aec289841bae7f928893b83e..a0f514ed2ddf450a78811bc918a594c30e759081 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -1099,4 +1099,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -1088,4 +1088,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public CombatTracker getCombatTracker() { public CombatTracker getCombatTracker() {
return this.getHandle().getCombatTracker().paperCombatTracker; return this.getHandle().getCombatTracker().paperCombatTracker;
} }

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -112,6 +_,18 @@ @@ -113,6 +_,18 @@
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType()); this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
} }

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -483,7 +_,7 @@ @@ -482,7 +_,7 @@
net.minecraft.server.level.ServerPlayer nmsKiller = killer == null ? null : ((CraftPlayer) killer).getHandle(); net.minecraft.server.level.ServerPlayer nmsKiller = killer == null ? null : ((CraftPlayer) killer).getHandle();
this.getHandle().setLastHurtByMob(nmsKiller); this.getHandle().setLastHurtByMob(nmsKiller);
if (nmsKiller != null) { if (nmsKiller != null) {

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -572,10 +_,15 @@ @@ -571,10 +_,15 @@
@Override @Override
public void setPlayerListName(String name) { public void setPlayerListName(String name) {
@@ -17,7 +17,7 @@
if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
for (ServerPlayer player : this.server.getHandle().players) { for (ServerPlayer player : this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) { if (player.getBukkitEntity().canSee(this)) {
@@ -978,6 +_,80 @@ @@ -977,6 +_,80 @@
} }
} }
@@ -98,7 +98,7 @@
@Override @Override
public void sendBlockDamage(Location loc, float progress, org.bukkit.entity.Entity source) { public void sendBlockDamage(Location loc, float progress, org.bukkit.entity.Entity source) {
Preconditions.checkArgument(source != null, "source must not be null"); Preconditions.checkArgument(source != null, "source must not be null");
@@ -2590,6 +_,28 @@ @@ -2475,6 +_,28 @@
public float getWalkSpeed() { public float getWalkSpeed() {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }
@@ -110,7 +110,7 @@
+ } + }
+ +
+ @Override + @Override
+ public boolean teleportOffline(Location destination, PlayerTeleportEvent.TeleportCause cause) { + public boolean teleportOffline(Location destination, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause) {
+ return this.teleport(destination, cause); + return this.teleport(destination, cause);
+ } + }
+ +
@@ -120,7 +120,7 @@
+ } + }
+ +
+ @Override + @Override
+ public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(Location destination, PlayerTeleportEvent.TeleportCause cause) { + public java.util.concurrent.CompletableFuture<Boolean> teleportOfflineAsync(Location destination, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause) {
+ return this.teleportAsync(destination, cause); + return this.teleportAsync(destination, cause);
+ } + }
+ // Purpur end - OfflinePlayer API + // Purpur end - OfflinePlayer API