mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
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:
@@ -30,7 +30,7 @@ index e35fb4f48a16780d8728ac1c7bb0fc64e2ded4e7..2c7039281854cc9b21e2badb62389522
|
||||
/* Drop global time updates
|
||||
if (this.tickCount % 20 == 0) {
|
||||
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
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
@@ -42,7 +42,7 @@ index d814aa9654163cdd8f6f938276d820a85036f04a..7dedba7fa332e02c4655424fea5263fe
|
||||
@Override
|
||||
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
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
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -774,6 +774,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -62,7 +62,7 @@ index 1dc24601d40d54dd8db21ce3bec4fb9b4bf24f08..5b910e27daa43ba2ac29d29e8ecc1b0b
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
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
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -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) {
|
||||
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
|
||||
index faba848cf70bac2ac280565b0de3c2342be8e977..75039c43a1f7d6f22fdebd1bac56a028354d1527 100644
|
||||
index 7b86550bea4c78e904a60ee234cb711ce04e1076..1c318158e1cc016cf7f26d352519f45bc244cee8 100644
|
||||
--- a/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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -107,7 +107,7 @@ index faba848cf70bac2ac280565b0de3c2342be8e977..75039c43a1f7d6f22fdebd1bac56a028
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} 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());
|
||||
}
|
||||
// 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(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
|
||||
index 226286194e662e61faed17e7d4c53b5f776779f3..1d888ebabecfd1beebdf718c5d771b312070245a 100644
|
||||
index 695fbbc996918339192a978c35a74ad599453796..efe4ed636d85624e4122880f95c634ffa7a3891a 100644
|
||||
--- a/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 {
|
||||
@@ -3651,7 +3651,7 @@ index 226286194e662e61faed17e7d4c53b5f776779f3..1d888ebabecfd1beebdf718c5d771b31
|
||||
}
|
||||
|
||||
@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 int floatDuration;
|
||||
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
|
||||
@@ -3704,7 +3704,7 @@ index 0de6a20a3fed53bd11a0152de6953bfaecc85289..dcbe6bbce0baa4fad7fe180944beeb6c
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 100.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d22266f95627d 100644
|
||||
index c72b599a98960372b301e9ac0f5f0ca5ad330a32..3c20818bf6f86cb34666d12084caf13d409a35ca 100644
|
||||
--- a/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -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)));
|
||||
}
|
||||
|
||||
@@ -344,7 +366,7 @@ public class Guardian extends Monster {
|
||||
@@ -349,7 +371,7 @@ public class Guardian extends Monster {
|
||||
@Override
|
||||
public void travel(Vec3 travelVector) {
|
||||
if (this.isInWater()) {
|
||||
@@ -3760,7 +3760,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
this.setDeltaMovement(this.getDeltaMovement().scale(0.9));
|
||||
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;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -3788,7 +3788,7 @@ index 5aff55743129c293497f21330eb93ac0a86ae04b..339c81d0a9833e762ca4fc63430d2226
|
||||
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());
|
||||
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;
|
||||
this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), f, 90.0F));
|
||||
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(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
|
||||
index 034a41573c330b2366fb305bb0796293d5d6a187..9be4861fc5cf5e9f8f562785eb3e857b6c1d3585 100644
|
||||
index 2323a7315878e38710f8f31f7806ebda94077067..8b58e0a76c9651cacacb503391ef9b6a53a3ddbc 100644
|
||||
--- a/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -24,6 +24,28 @@ public class MagmaCube extends Slime {
|
||||
@@ -3899,7 +3899,7 @@ index 034a41573c330b2366fb305bb0796293d5d6a187..9be4861fc5cf5e9f8f562785eb3e857b
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
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;
|
||||
this.setDeltaMovement(deltaMovement.x, this.getJumpPower() + f, deltaMovement.z);
|
||||
this.hasImpulse = true;
|
||||
@@ -4261,7 +4261,7 @@ index d64e4b7175a017c92b3ffa4c2b0271c772a90030..c39072d9265b2640e3bd701dacb54aa6
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
|
||||
index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7ec0d59c0 100644
|
||||
index 7abd42fa34c80e868875f0ff3986a85d1a6dcb8c..e46fd8c9f9966dab8b27004db0bc7028e95dedf2 100644
|
||||
--- a/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 {
|
||||
@@ -4321,7 +4321,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
|
||||
this.targetSelector
|
||||
.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));
|
||||
@@ -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();
|
||||
this.setDeltaMovement(deltaMovement.x, this.getJumpPower(), deltaMovement.z);
|
||||
this.hasImpulse = true;
|
||||
@@ -4329,7 +4329,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
|
||||
}
|
||||
|
||||
@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 int jumpDelay;
|
||||
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) {
|
||||
@@ -4375,7 +4375,7 @@ index 6a4bdf6e8e785460c864552f21116dec8c545bd6..3b9c4f2623ddecf54b139e032d8056a7
|
||||
if (this.jumpDelay-- <= 0) {
|
||||
this.jumpDelay = this.slime.getJumpDelay();
|
||||
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);
|
||||
}
|
||||
} else {
|
||||
@@ -4814,7 +4814,7 @@ index 862d32470a2eb40c947eb1ca4554737061d7bf6e..f9c119d38c2812cfeeb775e728f6c751
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
index d8f6612f65d9dd5f46f947c4748a9cde5cb98312..d52e83ee890ab278440a69972ad83d4dd2f972a6 100644
|
||||
index 08997d05ff75f68cd36c90eb8730dc44a052d5b8..d4f036c7d4b6652c5585f1ce5af9b26f9ed5b856 100644
|
||||
--- a/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 {
|
||||
@@ -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
|
||||
index 172783861b8704dc9c46c8c2f6be2d24c08e705b..d852f8cff28e3ff2189896d713d37a3400b0a70b 100644
|
||||
index 5af3c7a307e15680d15c4621870e6c17ea49c288..f304dea5ee2216b5b239dc5ce145f0aa425f5938 100644
|
||||
--- a/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 {
|
||||
@@ -4959,7 +4959,7 @@ index 172783861b8704dc9c46c8c2f6be2d24c08e705b..d852f8cff28e3ff2189896d713d37a34
|
||||
profilerFiller.pop();
|
||||
HoglinAi.updateActivity(this);
|
||||
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
|
||||
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
@@ -136,6 +136,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
|
||||
@@ -4986,7 +4986,7 @@ index fbbf7364b07ea49116dd86fa9722fa341978bc19..0dc2d7f71c06ba575c2ac97a4be6b246
|
||||
@Override
|
||||
protected void addAdditionalSaveData(ValueOutput 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) {
|
||||
ProfilerFiller profilerFiller = Profiler.get();
|
||||
profilerFiller.push("piglinBrain");
|
||||
|
||||
@@ -1161,7 +1161,7 @@ index 70cf903d95d35b539e9a299a4035c8ddde5e4b97..a5243b7969fec5d60b94368caf5e962c
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
|
||||
index 1d888ebabecfd1beebdf718c5d771b312070245a..fdbf14ff7e62d8db023b3d3bdf4ae685b5f085a8 100644
|
||||
index efe4ed636d85624e4122880f95c634ffa7a3891a..9e4048d55a386aad22f2054632dff457b10f1068 100644
|
||||
--- a/net/minecraft/world/entity/monster/Ghast.java
|
||||
+++ b/net/minecraft/world/entity/monster/Ghast.java
|
||||
@@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy {
|
||||
@@ -1201,7 +1201,7 @@ index dcbe6bbce0baa4fad7fe180944beeb6ca4026f7d..416bb85fc87b5f9e372f33df8fe27f12
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 100.0)
|
||||
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
|
||||
index 339c81d0a9833e762ca4fc63430d22266f95627d..c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1 100644
|
||||
index 3c20818bf6f86cb34666d12084caf13d409a35ca..70fbfe1d4d100d742712d19daf69c6b93891dab6 100644
|
||||
--- a/net/minecraft/world/entity/monster/Guardian.java
|
||||
+++ b/net/minecraft/world/entity/monster/Guardian.java
|
||||
@@ -90,6 +90,14 @@ public class Guardian extends Monster {
|
||||
@@ -1264,7 +1264,7 @@ index 162986914c6718438b7e1d5408bdbe5a4d3e3a68..b6872c94d769346ed2a8bb2406fc2b39
|
||||
protected void registerGoals() {
|
||||
super.registerGoals();
|
||||
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
|
||||
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
|
||||
@@ -46,6 +46,28 @@ public class MagmaCube extends Slime {
|
||||
@@ -1442,7 +1442,7 @@ index c39072d9265b2640e3bd701dacb54aa629f3b230..8d1f83ba8042435a0dc1e6e1fb987317
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
|
||||
index 3b9c4f2623ddecf54b139e032d8056a7ec0d59c0..beb504f9a5de48d9631585648a98cd3d2d682d76 100644
|
||||
index e46fd8c9f9966dab8b27004db0bc7028e95dedf2..5af9f8182fa8bc3720cf30ed073ecc8050a76b43 100644
|
||||
--- a/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 {
|
||||
@@ -1700,7 +1700,7 @@ index f9c119d38c2812cfeeb775e728f6c751bf748c85..1de823b94ee0e53109b4dd3e726f721e
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
super.defineSynchedData(builder);
|
||||
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
|
||||
index d52e83ee890ab278440a69972ad83d4dd2f972a6..819faafec711edc6e837a2f52a318910f4ef0a5c 100644
|
||||
index d4f036c7d4b6652c5585f1ce5af9b26f9ed5b856..b78ba21e6aa753e3df6545432038daa0070fa7b7 100644
|
||||
--- a/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 {
|
||||
@@ -1718,7 +1718,7 @@ index d52e83ee890ab278440a69972ad83d4dd2f972a6..819faafec711edc6e837a2f52a318910
|
||||
@Override
|
||||
public void setPersistentAngerTarget(@Nullable UUID 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
|
||||
protected void randomizeReinforcementsChance() {
|
||||
@@ -1747,7 +1747,7 @@ index c3c4dfb89c807020c4147140bc23ba1ce5cfe888..f31a29531cc7d63bed5a4bcbe3986bcc
|
||||
protected BodyRotationControl createBodyControl() {
|
||||
return new Creaking.CreakingBodyRotationControl(this);
|
||||
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
index d852f8cff28e3ff2189896d713d37a3400b0a70b..1062df067d6b98ffba27864450d8a867446aae79 100644
|
||||
index f304dea5ee2216b5b239dc5ce145f0aa425f5938..b468ad62723c20b9961c8b4b9c0c34a9518d98ea 100644
|
||||
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
|
||||
@@ -112,6 +112,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
|
||||
@@ -1766,7 +1766,7 @@ index d852f8cff28e3ff2189896d713d37a3400b0a70b..1062df067d6b98ffba27864450d8a867
|
||||
public void setTimeInOverworld(int timeInOverworld) {
|
||||
this.timeInOverworld = timeInOverworld;
|
||||
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
|
||||
index 0dc2d7f71c06ba575c2ac97a4be6b2466d5407d9..19211c0d78113da7827a071fd510b4f36e63a9f2 100644
|
||||
index a74268846a160aa2e2e8688b1562216c2e248726..471d4d375eb437a42361f60e27919c209221d743 100644
|
||||
--- a/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
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 1d6f77ade1456fd4ffc425e0c75ea98e86be7a42..72d24ebbbcd7d6db849190ca646ecdaf1053d0bb 100644
|
||||
index 235c179000b389c3b30bbe1764b837b634546512..f6b86ee7b9e5cc1b3ce0d5097e1ba8b566038a11 100644
|
||||
--- a/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
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
|
||||
@@ -227,10 +227,10 @@ index 23722456ce82dcc6b571b96e5c9b0d70005f9c2e..97662c39001b4433601f46ef83f28c0e
|
||||
continue;
|
||||
}
|
||||
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
|
||||
+++ 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
|
||||
public boolean wantsToPickUp(ServerLevel level, ItemStack stack) {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
Co-authored by: Encode42 <me@encode42.dev>
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 75039c43a1f7d6f22fdebd1bac56a028354d1527..906848dce743c66b18899c21d408d28ad6dc642c 100644
|
||||
index 1c318158e1cc016cf7f26d352519f45bc244cee8..1b9f3e94206cc5627ca6c98f142766d4aaa7f4d7 100644
|
||||
--- a/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
|
||||
|
||||
|
||||
@@ -52,15 +52,15 @@
|
||||
Entity entity = damageSource.getEntity();
|
||||
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
|
||||
!(entity instanceof Player player && !this.canHarmPlayer(player))
|
||||
@@ -1549,6 +_,7 @@
|
||||
serverLevel.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
|
||||
this.unsetRemoved();
|
||||
// CraftBukkit end
|
||||
@@ -1545,6 +_,7 @@
|
||||
|
||||
profilerFiller.pop();
|
||||
profilerFiller.push("placing");
|
||||
+ this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(exit); // Purpur - Fix stuck in portals
|
||||
this.setServerLevel(level);
|
||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||
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),
|
||||
monster -> monster.isPreventingPlayerRest(this.level(), this)
|
||||
);
|
||||
@@ -69,7 +69,7 @@
|
||||
return Either.left(Player.BedSleepingProblem.NOT_SAFE);
|
||||
}
|
||||
}
|
||||
@@ -1705,7 +_,19 @@
|
||||
@@ -1683,7 +_,19 @@
|
||||
CriteriaTriggers.SLEPT_IN_BED.trigger(this);
|
||||
});
|
||||
if (!this.level().canSleepThroughNights()) {
|
||||
@@ -90,7 +90,7 @@
|
||||
}
|
||||
|
||||
this.level().updateSleepingPlayerList();
|
||||
@@ -1797,6 +_,7 @@
|
||||
@@ -1775,6 +_,7 @@
|
||||
|
||||
@Override
|
||||
public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) {
|
||||
@@ -98,7 +98,7 @@
|
||||
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos()));
|
||||
this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText));
|
||||
}
|
||||
@@ -2106,6 +_,26 @@
|
||||
@@ -2084,6 +_,26 @@
|
||||
this.lastSentExp = -1; // CraftBukkit - Added to reset
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
@Override
|
||||
public void displayClientMessage(Component message, boolean overlay) {
|
||||
this.sendSystemMessage(message, overlay);
|
||||
@@ -2327,6 +_,20 @@
|
||||
@@ -2318,6 +_,20 @@
|
||||
);
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
public void sendSystemMessage(Component message) {
|
||||
this.sendSystemMessage(message, false);
|
||||
}
|
||||
@@ -2465,7 +_,67 @@
|
||||
@@ -2456,7 +_,67 @@
|
||||
|
||||
public void resetLastActionTime() {
|
||||
this.lastActionTime = Util.getMillis();
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
public ServerStatsCounter getStats() {
|
||||
return this.stats;
|
||||
@@ -3109,4 +_,56 @@
|
||||
@@ -3097,4 +_,65 @@
|
||||
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -235,9 +235,18 @@
|
||||
+
|
||||
+ ServerLevel toLevel = ((org.bukkit.craftbukkit.CraftWorld) to.getWorld()).getHandle();
|
||||
+ if (this.level() == toLevel) {
|
||||
+ this.connection.teleport(to);
|
||||
+ this.connection.internalTeleport(to);
|
||||
+ } 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
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
ServerLevel serverLevel = player.level();
|
||||
player.awardStat(Stats.LEAVE_GAME);
|
||||
// CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
|
||||
@@ -810,6 +_,20 @@
|
||||
@@ -763,6 +_,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
|
||||
for (ServerPlayer serverPlayer : this.players) {
|
||||
if (serverPlayer.level().dimension() == dimension) {
|
||||
@@ -904,6 +_,7 @@
|
||||
@@ -857,6 +_,7 @@
|
||||
} else {
|
||||
b = (byte)(24 + permLevel);
|
||||
}
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
player.connection.send(new ClientboundEntityEventPacket(player, b));
|
||||
}
|
||||
@@ -916,7 +_,7 @@
|
||||
@@ -869,7 +_,7 @@
|
||||
|
||||
// Paper start - whitelist verify event / login event
|
||||
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
+ public static javax.script.ScriptEngine scriptEngine = new javax.script.ScriptEngineManager().getEngineByName("rhino"); // Purpur - Configurable entity base attributes
|
||||
// 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 snapTo
|
||||
@@ -282,8 +_,9 @@
|
||||
static boolean isLevelAtLeast(ValueInput input, int level) {
|
||||
@@ -281,8 +_,9 @@
|
||||
public double xOld;
|
||||
public double yOld;
|
||||
public double zOld;
|
||||
@@ -19,7 +19,7 @@
|
||||
public int tickCount;
|
||||
private int remainingFireTicks;
|
||||
public boolean wasTouchingWater;
|
||||
@@ -317,8 +_,8 @@
|
||||
@@ -316,8 +_,8 @@
|
||||
public PortalProcessor portalProcess;
|
||||
public int portalCooldown;
|
||||
private boolean invulnerable;
|
||||
@@ -30,7 +30,7 @@
|
||||
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 double[] pistonDeltas = new double[]{0.0, 0.0, 0.0};
|
||||
@@ -373,6 +_,7 @@
|
||||
@@ -372,6 +_,7 @@
|
||||
public long activatedTick = Integer.MIN_VALUE;
|
||||
public boolean isTemporarilyActive;
|
||||
public long activatedImmunityTick = Integer.MIN_VALUE;
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
public void inactiveTick() {
|
||||
}
|
||||
@@ -535,10 +_,21 @@
|
||||
@@ -534,10 +_,21 @@
|
||||
}
|
||||
// Paper end - optimise entity tracker
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
this.position = Vec3.ZERO;
|
||||
this.blockPosition = BlockPos.ZERO;
|
||||
this.chunkPosition = ChunkPos.ZERO;
|
||||
@@ -917,6 +_,7 @@
|
||||
@@ -916,6 +_,7 @@
|
||||
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
|
||||
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
|
||||
// Paper end - Configurable nether ceiling damage
|
||||
@@ -68,7 +68,7 @@
|
||||
this.onBelowWorld();
|
||||
}
|
||||
}
|
||||
@@ -1942,7 +_,7 @@
|
||||
@@ -1941,7 +_,7 @@
|
||||
}
|
||||
|
||||
public boolean fireImmune() {
|
||||
@@ -77,7 +77,7 @@
|
||||
}
|
||||
|
||||
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
|
||||
@@ -2642,6 +_,11 @@
|
||||
@@ -2634,6 +_,11 @@
|
||||
output.putBoolean("Paper.FreezeLock", true);
|
||||
}
|
||||
// Paper end
|
||||
@@ -89,7 +89,7 @@
|
||||
} catch (Throwable var7) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT");
|
||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved");
|
||||
@@ -2762,6 +_,9 @@
|
||||
@@ -2754,6 +_,9 @@
|
||||
}
|
||||
freezeLocked = input.getBooleanOr("Paper.FreezeLock", false);
|
||||
// Paper end
|
||||
@@ -99,7 +99,7 @@
|
||||
} catch (Throwable var7) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
|
||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
||||
@@ -3034,6 +_,7 @@
|
||||
@@ -3026,6 +_,7 @@
|
||||
if (this.isAlive() && this instanceof Leashable leashable2) {
|
||||
if (leashable2.getLeashHolder() == player) {
|
||||
if (!this.level().isClientSide()) {
|
||||
@@ -107,7 +107,7 @@
|
||||
// Paper start - EntityUnleashEvent
|
||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
|
||||
leashable2, player, hand, !player.hasInfiniteMaterials(), true
|
||||
@@ -3458,15 +_,18 @@
|
||||
@@ -3450,15 +_,18 @@
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3671,7 +_,7 @@
|
||||
@@ -3663,7 +_,7 @@
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -136,8 +136,8 @@
|
||||
}
|
||||
|
||||
public int getAirSupply() {
|
||||
@@ -4233,7 +_,7 @@
|
||||
// CraftBukkit end
|
||||
@@ -4200,7 +_,7 @@
|
||||
}
|
||||
|
||||
public boolean canUsePortal(boolean allowPassengers) {
|
||||
- return (allowPassengers || !this.isPassenger()) && this.isAlive();
|
||||
@@ -145,7 +145,7 @@
|
||||
}
|
||||
|
||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||
@@ -4748,6 +_,12 @@
|
||||
@@ -4715,6 +_,12 @@
|
||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
if (this.touchingUnloadedChunk()) {
|
||||
@@ -5165,7 +_,7 @@
|
||||
@@ -5132,7 +_,7 @@
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
|
||||
@@ -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
|
||||
index 15686e234b7e1a2833c0962fbead94c0cfd0a1e4..a80003a07834a9eafa554afd13afa13a3eac1c30 100644
|
||||
index bf3674f8984dd0ee441e04f92b747f908d629953..132e045f3885146a9a6510c6ed51fcb85e1c47ce 100644
|
||||
--- a/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;
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ index 15686e234b7e1a2833c0962fbead94c0cfd0a1e4..a80003a07834a9eafa554afd13afa13a
|
||||
+ // 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
|
||||
index cc108383fa62b3ea5781c1ac58f9f8a24412e6c3..0b536e4ee904cba3a724d98d491185cfded3d723 100644
|
||||
index 00af7ce338ea49375ce1a5e95d01fb24b1c43de8..691c7e393ff6a0d4b132f25b6de2b346b97f7169 100644
|
||||
--- a/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);
|
||||
|
||||
@@ -55,7 +55,7 @@ index cc108383fa62b3ea5781c1ac58f9f8a24412e6c3..0b536e4ee904cba3a724d98d491185cf
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -1049,6 +1058,7 @@ public class CraftEventFactory {
|
||||
@@ -1053,6 +1062,7 @@ public class CraftEventFactory {
|
||||
EntityDamageEvent event;
|
||||
if (damager != null) {
|
||||
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
|
||||
|
||||
@@ -16,34 +16,14 @@ GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
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
|
||||
index d352b1130c287007ea12392cc613e6bb0449d14b..4eb7d90f38e744b51c11d334a44dacb0a9ac6956 100644
|
||||
index ecb01b035d81a42911db1c8364e23ccba4a8b790..56bbaab57432a78e85bc0013cd7f991f662f0cd2 100644
|
||||
--- a/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
|
||||
// Paper start - Teleport passenger API
|
||||
// Don't allow teleporting between worlds while keeping passengers
|
||||
if (ignorePassengers && 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;
|
||||
}
|
||||
|
||||
@@ -1447,6 +1448,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
}
|
||||
|
||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||
@@ -1382,6 +1382,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
|
||||
// Minecraft does not currently support teleporting players between worlds with passengers.
|
||||
// It causes them to be dismounted, and causes weird behavior.
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
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
|
||||
index b605a2662b72fde523bbe22142e712b059d43a0a..11c1a0abad4efb65547c5b42869ec06bb74b4d59 100644
|
||||
index 132e045f3885146a9a6510c6ed51fcb85e1c47ce..6ac0f9d208c41182b7c596ab809de41f07f265a9 100644
|
||||
--- a/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
|
||||
|
||||
@@ -24,10 +24,10 @@ index b605a2662b72fde523bbe22142e712b059d43a0a..11c1a0abad4efb65547c5b42869ec06b
|
||||
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
|
||||
index 74e2fc6e1f1c4513accaa4e9ad7f614021a4ea76..b266da70a69b8acfb0caec96af0399126d258fb0 100644
|
||||
index 3feb3ee939ce3814aec289841bae7f928893b83e..a0f514ed2ddf450a78811bc918a594c30e759081 100644
|
||||
--- a/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() {
|
||||
return this.getHandle().getCombatTracker().paperCombatTracker;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/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());
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/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();
|
||||
this.getHandle().setLastHurtByMob(nmsKiller);
|
||||
if (nmsKiller != null) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/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
|
||||
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
|
||||
for (ServerPlayer player : this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
@@ -978,6 +_,80 @@
|
||||
@@ -977,6 +_,80 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
@Override
|
||||
public void sendBlockDamage(Location loc, float progress, org.bukkit.entity.Entity source) {
|
||||
Preconditions.checkArgument(source != null, "source must not be null");
|
||||
@@ -2590,6 +_,28 @@
|
||||
@@ -2475,6 +_,28 @@
|
||||
public float getWalkSpeed() {
|
||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||
}
|
||||
@@ -110,7 +110,7 @@
|
||||
+ }
|
||||
+
|
||||
+ @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);
|
||||
+ }
|
||||
+
|
||||
@@ -120,7 +120,7 @@
|
||||
+ }
|
||||
+
|
||||
+ @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);
|
||||
+ }
|
||||
+ // Purpur end - OfflinePlayer API
|
||||
|
||||
Reference in New Issue
Block a user