aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-06-13 10:12:48 -0700
committerJake Potrebic <[email protected]>2024-06-13 10:12:48 -0700
commit8a37f93925f5a0274745f81bb6d4ee8473551abf (patch)
tree5862d5be3fabfa84ab538d983e3daaddfb59b858 /patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch
parent7fbb8278e70c1904e09f2144f0e3897468a4906f (diff)
downloadPaper-8a37f93925f5a0274745f81bb6d4ee8473551abf.tar.gz
Paper-8a37f93925f5a0274745f81bb6d4ee8473551abf.zip
62
Diffstat (limited to 'patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch')
-rw-r--r--patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch b/patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch
new file mode 100644
index 0000000000..d83b08b97c
--- /dev/null
+++ b/patches/removed/1.21/0063-Configurable-inter-world-teleportation-safety.patch
@@ -0,0 +1,30 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Sudzzy <[email protected]>
+Date: Thu, 3 Mar 2016 02:50:31 -0600
+Subject: [PATCH] Configurable inter-world teleportation safety
+
+People are able to abuse the way Bukkit handles teleportation across worlds since it provides a built in teleportation
+safety check.
+
+To abuse the safety check, players are required to get into a location deemed unsafe by Bukkit e.g. be within a chest
+or door block. While they are in this block, they accept a teleport request from a player within a different world. Once
+the player teleports, Minecraft will recursively search upwards for a safe location, this could eventually land within a
+player's skybase.
+
+Example setup to perform the glitch: http://puu.sh/ng3PC/cf072dcbdb.png
+The wanted destination was on top of the emerald block however the player ended on top of the diamond block.
+This only is the case if the player is teleporting between worlds.
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index cb0990c5479773c7448984b79d9b4d8fe45bef7a..f4b4e115a1f39524c2bd307c0e1aaf3c140df7c6 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -1235,7 +1235,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ entity.connection.teleport(to);
+ } else {
+ // The respawn reason should never be used if the passed location is non null.
+- this.server.getHandle().respawn(entity, toWorld, true, to, true, null);
++ this.server.getHandle().respawn(entity, toWorld, true, to, !toWorld.paperConfig().environment.disableTeleportationSuffocationCheck, null); // Paper
+ }
+ return true;
+ }