diff options
author | Lulu13022002 <[email protected]> | 2024-06-21 20:06:31 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-06-21 11:06:31 -0700 |
commit | 9cd020153532aefc3ee8e7fb51833b0a570bba9e (patch) | |
tree | f7476b094b912e6de4a7e53899101dc0a57a2cfc /patches/server/0411-Fix-Entity-Teleportation-and-cancel-velocity-if-tele.patch | |
parent | 0409a68f5099afdbe5f95f8a928c29aacbf90677 (diff) | |
download | Paper-9cd020153532aefc3ee8e7fb51833b0a570bba9e.tar.gz Paper-9cd020153532aefc3ee8e7fb51833b0a570bba9e.zip |
Preserve velocity for fireball (#10934)
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.patch | 24 |
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(); |