aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch')
-rw-r--r--patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch b/patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
index cb9d72e351..3595a39301 100644
--- a/patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
+++ b/patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch
@@ -56,6 +56,18 @@ index f2855de7320dc9532d0b568b84b0b7e5a2064045..1e65bfa3d2f3a178803c530e1610c940
this.setPosRaw(x, y, z);
this.setYRot(yaw);
this.setXRot(pitch);
+diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java
+index a28e6b6a50cfd9191732ad2e4aca5f639a1fae75..244e328c6f67cfa543ee283715bb3b89dbaa0f0c 100644
+--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java
++++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java
+@@ -78,6 +78,7 @@ public class DragonStrafePlayerPhase extends AbstractDragonPhaseInstance {
+ }
+
+ DragonFireball dragonFireball = new DragonFireball(this.dragon.level(), this.dragon, vec34.normalize());
++ dragonFireball.preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported
+ dragonFireball.moveTo(o, p, q, 0.0F, 0.0F);
+ if (new com.destroystokyo.paper.event.entity.EnderDragonShootFireballEvent((org.bukkit.entity.EnderDragon) dragon.getBukkitEntity(), (org.bukkit.entity.DragonFireball) dragonFireball.getBukkitEntity()).callEvent()) // Paper - EnderDragon Events
+ this.dragon.level().addFreshEntity(dragonFireball);
diff --git a/src/main/java/net/minecraft/world/level/BaseSpawner.java b/src/main/java/net/minecraft/world/level/BaseSpawner.java
index b90127f9f805fdb5bb43a4b8ad2b10499b0b6b78..8efc06d29c62fa2be8515ed3359d52a6d4b807d2 100644
--- a/src/main/java/net/minecraft/world/level/BaseSpawner.java
@@ -81,3 +93,15 @@ index 34321f095e12ea0cca34ff1ec00819c6350205a8..5f5788a502642463091fb76e98703aae
// SPIGOT-619: Force sync head rotation also
this.entity.setYHeadRot(location.getYaw());
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+index 344ef786330d1247fdfb56ef04be130c9ffb7d8f..af5aab1755f80222a249b1cc7da595af78dccbbd 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+@@ -590,6 +590,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+ }
+
+ ((AbstractHurtingProjectile) launch).projectileSource = this;
++ launch.preserveMotion = true; // Paper - Fix Entity Teleportation and cancel velocity if teleported
+ launch.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
+ } else if (LlamaSpit.class.isAssignableFrom(projectile)) {
+ Location location = this.getEyeLocation();