mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37: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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user