From ed377335f50ae72a12e71e800262b2923c8744b6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 7 Jul 2019 19:04:07 -0500 Subject: [PATCH] Teleport with vehicle/passenger --- ...0045-Teleport-with-vehicle-passenger.patch | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 patches/server/0045-Teleport-with-vehicle-passenger.patch diff --git a/patches/server/0045-Teleport-with-vehicle-passenger.patch b/patches/server/0045-Teleport-with-vehicle-passenger.patch new file mode 100644 index 000000000..a7eb9f567 --- /dev/null +++ b/patches/server/0045-Teleport-with-vehicle-passenger.patch @@ -0,0 +1,69 @@ +From da89815b34a96bb0cefe3a1ae47350ddae67bd60 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Sun, 7 Jul 2019 18:25:05 -0500 +Subject: [PATCH] Teleport with vehicle/passenger + +--- + .../org/bukkit/craftbukkit/entity/CraftEntity.java | 12 +++++++++++- + .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 12 +++++++++++- + 2 files changed, 22 insertions(+), 2 deletions(-) + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +index 15042943c..f0ca40095 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -494,10 +494,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + Preconditions.checkArgument(location != null, "location"); + location.checkFinite(); + +- if (entity.isVehicle() || entity.dead) { ++ if (entity.dead) { // Purpur + return false; + } + ++ // Purpur start ++ if (entity.getVehicle() != null) { ++ System.out.println("1"); ++ if (entity.getVehicle().getVehicle() == null) { ++ System.out.println("2"); ++ return entity.getVehicle().getBukkitEntity().teleport(location, cause); ++ } ++ } ++ // Purpur end ++ + // If this entity is riding another entity, we must dismount before teleporting. + entity.stopRiding(); + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index c94944dfe..221e5340c 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -752,7 +752,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + return false; + } + +- if (entity.isVehicle()) { ++ if (false && entity.isVehicle()) { // Purpur + return false; + } + +@@ -769,6 +769,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + return false; + } + ++ // Purpur start ++ if (entity.getVehicle() != null) { ++ System.out.println("1"); ++ if (entity.getVehicle().getVehicle() == null) { ++ System.out.println("2"); ++ return entity.getVehicle().getBukkitEntity().teleport(location, cause); ++ } ++ } ++ // Purpur end ++ + // If this player is riding another entity, we must dismount before teleporting. + entity.stopRiding(); + +-- +2.20.1 +