From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cryptite Date: Sat, 13 Aug 2022 08:58:21 -0500 Subject: [PATCH] Slice: Smooth Teleports Original license: MIT Original project: https://github.com/Cryptite/Slice Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index 2a8abee51e8fad62b0aa58a47eadfbac2bf51fdf..afdec702fbe37d49cac6a80561a9dfdc4904d48a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3709,6 +3709,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end + /** + * This abuses some of how Minecraft works and attempts to teleport a player to another world without + * triggering typical respawn packets. All of natural state of chunk resends, entity adds/removes, etc still + * happen but the visual "refresh" of a world change is hidden. Depending on the destination location/world, + * this can act as a "smooth teleport" to a world if the new world is very similar looking to the old one. + * + * @param location New location to teleport this Player to + * @deprecated use {@link #teleportWithoutRespawnOptionally(Location)} + */ + // Slice start + @org.jetbrains.annotations.ApiStatus.Experimental + @Deprecated(since = "1.21.1", forRemoval = true) + void teleportWithoutRespawn(@NotNull Location location); + + /** + * This abuses some of how Minecraft works and attempts to teleport a player to another world without + * triggering typical respawn packets. All of natural state of chunk resends, entity adds/removes, etc still + * happen but the visual "refresh" of a world change is hidden. Depending on the destination location/world, + * this can act as a "smooth teleport" to a world if the new world is very similar looking to the old one. + * + * @param location New location to teleport this Player to + * @return Whether the teleport was successful + */ + @org.jetbrains.annotations.ApiStatus.Experimental + boolean teleportWithoutRespawnOptionally(@NotNull Location location); + // Slice end + // Paper start - Teleport API /** * Sets the player's rotation.