Be less strict with vanilla teleport command limits
Just limit to the same valid location check as BaseBlockPosition, no reason to restrict to the world border. Ref: GH-3165
This commit is contained in:
parent
0f06d38062
commit
fdb8fe7807
1 changed files with 9 additions and 7 deletions
|
@ -1,19 +1,21 @@
|
||||||
From b05693d1f838ea0610b915f48954530dca2943ff Mon Sep 17 00:00:00 2001
|
From edcf740d8e3d2b296015f13626dabff83cde74f0 Mon Sep 17 00:00:00 2001
|
||||||
From: Zach Brown <zach@zachbr.io>
|
From: Zach Brown <zach@zachbr.io>
|
||||||
Date: Thu, 16 Apr 2020 20:07:29 -0500
|
Date: Thu, 16 Apr 2020 20:07:29 -0500
|
||||||
Subject: [PATCH] Restrict vanilla teleport command to worldborder
|
Subject: [PATCH] Restrict vanilla teleport command to valid locations
|
||||||
|
|
||||||
|
Fixes GH-3165
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/CommandTeleport.java b/src/main/java/net/minecraft/server/CommandTeleport.java
|
diff --git a/src/main/java/net/minecraft/server/CommandTeleport.java b/src/main/java/net/minecraft/server/CommandTeleport.java
|
||||||
index 3060b4f68..df2711978 100644
|
index 3060b4f68..79016b587 100644
|
||||||
--- a/src/main/java/net/minecraft/server/CommandTeleport.java
|
--- a/src/main/java/net/minecraft/server/CommandTeleport.java
|
||||||
+++ b/src/main/java/net/minecraft/server/CommandTeleport.java
|
+++ b/src/main/java/net/minecraft/server/CommandTeleport.java
|
||||||
@@ -116,6 +116,11 @@ public class CommandTeleport {
|
@@ -116,6 +116,12 @@ public class CommandTeleport {
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
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 go outside the world border
|
+ // Paper start - Don't allow teleport command to invalid locations
|
||||||
+ if (!worldserver.getWorldBorder().isInBounds(new BlockPosition(d0, d1, d2))) {
|
+ if (d0 <= -30000000 || d2 <= -30000000 || d0 > 30000000 || d2 > 30000000) { // Copy/pasta from BaseBlockPosition#isValidLocation
|
||||||
|
+ org.bukkit.Bukkit.getLogger().warning("Refused to teleport " + entity.getName() + " to " + d0 + ", " + d1 + ", " + d2);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
@ -21,5 +23,5 @@ index 3060b4f68..df2711978 100644
|
||||||
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(d0, d1, d2));
|
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(d0, d1, d2));
|
||||||
|
|
||||||
--
|
--
|
||||||
2.26.1.windows.1
|
2.26.0
|
||||||
|
|
Loading…
Reference in a new issue