aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch')
-rw-r--r--patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch b/patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch
new file mode 100644
index 0000000000..277372d88a
--- /dev/null
+++ b/patches/server/0781-Don-t-allow-vehicle-movement-from-players-while-tele.patch
@@ -0,0 +1,24 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Spottedleaf <[email protected]>
+Date: Mon, 14 Mar 2022 12:35:37 -0700
+Subject: [PATCH] Don't allow vehicle movement from players while teleporting
+
+Bring the vehicle move packet behavior in line with the
+regular player move packet.
+
+diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+index ec1bec4f3ecdabad7ecf0a99f6edc1e2132a2c9e..db7d4a74021873a86a06f39c43d36804d97e4fdb 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -463,6 +463,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+ this.disconnect(Component.translatable("multiplayer.disconnect.invalid_vehicle_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_VEHICLE_MOVEMENT); // Paper - kick event cause
+ } else {
+ Entity entity = this.player.getRootVehicle();
++ // Paper start
++ if (this.awaitingPositionFromClient != null || this.player.isImmobile() || entity.isRemoved()) {
++ return;
++ }
++ // Paper end
+
+ if (entity != this.player && entity.getControllingPassenger() == this.player && entity == this.lastVehicle) {
+ ServerLevel worldserver = this.player.serverLevel();