From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MrHua269 Date: Wed, 8 Jul 2026 21:37:19 +0800 Subject: [PATCH] Fix teleport missing original rotation and velocity diff --git a/io/papermc/paper/threadedregions/TeleportUtils.java b/io/papermc/paper/threadedregions/TeleportUtils.java index 2a64a5b2cf049661fe3f5a22ddfa39979624f5ec..335e9775e0d9a61f0e9641aba691a3bdf3ac7f2b 100644 --- a/io/papermc/paper/threadedregions/TeleportUtils.java +++ b/io/papermc/paper/threadedregions/TeleportUtils.java @@ -41,7 +41,7 @@ public final class TeleportUtils { return; } (useFromRootVehicle ? realFrom.getRootVehicle() : realFrom).teleportAsync( - ((CraftWorld)loc.getWorld()).getHandle(), pos, null, null, null, + ((CraftWorld)loc.getWorld()).getHandle(), pos, yaw, pitch, null, // Shiroha - Fix teleport missing original rotation and velocity cause, teleportFlags, onComplete ); }, diff --git a/net/minecraft/server/commands/TeleportCommand.java b/net/minecraft/server/commands/TeleportCommand.java index 13d7965fd4f99f0848b080349df41f8b1c31a19b..9c5583886ccabb536a519e5a998ed798227ec5fd 100644 --- a/net/minecraft/server/commands/TeleportCommand.java +++ b/net/minecraft/server/commands/TeleportCommand.java @@ -248,8 +248,8 @@ public class TeleportCommand { // Folia start - region threading if (true) { Vec3 posFinal = new Vec3(x, y, z); - Float yawFinal = Float.valueOf(newYRot); - Float pitchFinal = Float.valueOf(newXRot); + Float yawFinal = Float.valueOf(newYRot + victim.getYRot()); // Shiroha - Fix teleport missing original rotation and velocity + Float pitchFinal = Float.valueOf(newXRot + victim.getXRot()); // Shiroha - Fix teleport missing original rotation and velocity victim.getBukkitEntity().taskScheduler.schedule((Entity nmsEntity) -> { nmsEntity.stopRiding(); nmsEntity.teleportAsync( diff --git a/net/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearl.java index a5870da96da005ed682bc25eac3af6c771dee851..4672d76ecf926975948135598f55405518e0007b 100644 --- a/net/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearl.java +++ b/net/minecraft/world/entity/projectile/throwableitemprojectile/ThrownEnderpearl.java @@ -99,7 +99,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile { } entity.teleportAsync( - checkWorld, to, null, null, null, + checkWorld, to, null, null, entity.getDeltaMovement(), // Shiroha - Fix teleport missing original rotation and velocity org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL, // chunk could have been unloaded Entity.TELEPORT_FLAG_TELEPORT_PASSENGERS | Entity.TELEPORT_FLAG_LOAD_CHUNK,