Also restrict height in the vanilla teleport command

Uses the same ridiculously large limit as before,
just now also applied to the Y coord.

Fixes GH-3575
This commit is contained in:
Zach Brown 2020-06-17 17:46:45 -05:00
parent f860969175
commit 9ffaa44ae1
No known key found for this signature in database
GPG key ID: CC9DA35FC5450B76

View file

@ -3,10 +3,10 @@ From: Zach Brown <zach@zachbr.io>
Date: Thu, 16 Apr 2020 20:07:29 -0500
Subject: [PATCH] Restrict vanilla teleport command to valid locations
Fixes GH-3165
Fixes GH-3165, GH-3575
diff --git a/src/main/java/net/minecraft/server/CommandTeleport.java b/src/main/java/net/minecraft/server/CommandTeleport.java
index 3060b4f68b13abe05d31b85bb49690a0b476939f..79016b587072a6a1c5418648d7aa88e96fbeefff 100644
index 3060b4f68b13abe05d31b85bb49690a0b476939f..cc00cd0b44b23c76c627b5d51362a22273f7bac4 100644
--- a/src/main/java/net/minecraft/server/CommandTeleport.java
+++ b/src/main/java/net/minecraft/server/CommandTeleport.java
@@ -116,6 +116,12 @@ public class CommandTeleport {
@ -14,7 +14,7 @@ index 3060b4f68b13abe05d31b85bb49690a0b476939f..79016b587072a6a1c5418648d7aa88e9
private static void a(CommandListenerWrapper commandlistenerwrapper, Entity entity, WorldServer worldserver, double d0, double d1, double d2, Set<PacketPlayOutPosition.EnumPlayerTeleportFlags> set, float f, float f1, @Nullable CommandTeleport.a commandteleport_a) {
+ // Paper start - Don't allow teleport command to invalid locations
+ if (d0 <= -30000000 || d2 <= -30000000 || d0 > 30000000 || d2 > 30000000) { // Copy/pasta from BaseBlockPosition#isValidLocation
+ if (d0 <= -30000000 || d2 <= -30000000 || d0 > 30000000 || d2 > 30000000 || d1 > 30000000 || d1 <= -30000000) { // Copy/pasta from BaseBlockPosition#isValidLocation
+ org.bukkit.Bukkit.getLogger().warning("Refused to teleport " + entity.getName() + " to " + d0 + ", " + d1 + ", " + d2);
+ return;
+ }