Teleport with vehicle/passenger

This commit is contained in:
William Blake Galbreath
2019-07-07 19:04:07 -05:00
parent 21c220d1a8
commit ed377335f5

View File

@@ -0,0 +1,69 @@
From da89815b34a96bb0cefe3a1ae47350ddae67bd60 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
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