mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 10:44:39 +01:00
b2aaf31f9e
Removes ArmorStand Marker API as that was added to Bukkit
99 lines
No EOL
4.3 KiB
Diff
99 lines
No EOL
4.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Sun, 31 May 2015 01:44:02 -0500
|
|
Subject: [PATCH] Teleport passenger/vehicle with player
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener {
|
|
}
|
|
// CraftBukikt end
|
|
|
|
+ // PaperSpigot start - Teleport passenger/vehicle with player
|
|
+ public void retrack() {
|
|
+ final EntityTracker entityTracker = ((WorldServer) world).getTracker();
|
|
+ entityTracker.untrackEntity(this);
|
|
+ entityTracker.track(this);
|
|
+
|
|
+ }
|
|
+ // PaperSpigot end
|
|
+
|
|
private static final AxisAlignedBB a = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
|
|
private static int entityCount;
|
|
private int id;
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener {
|
|
// minecraftserver.getPlayerList().changeWorld(this, j, worldserver, worldserver1);
|
|
boolean before = worldserver1.chunkProviderServer.forceChunkLoad;
|
|
worldserver1.chunkProviderServer.forceChunkLoad = true;
|
|
- worldserver1.getMinecraftServer().getPlayerList().repositionEntity(this, exit, portal);
|
|
+ //worldserver1.getMinecraftServer().getPlayerList().repositionEntity(this, exit, portal); // PaperSpigot - Teleport passenger/vehicle with player, no... this entity is dead;
|
|
worldserver1.chunkProviderServer.forceChunkLoad = before;
|
|
// CraftBukkit end
|
|
this.world.methodProfiler.c("reloading");
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements ICommandListener {
|
|
|
|
if (entity != null) {
|
|
entity.n(this);
|
|
+
|
|
+ // PaperSpigot start - Teleport passenger/vehicle with player, move entity to new location
|
|
+ exit.getBlock(); // force load
|
|
+ entity.setLocation(exit.getX(), exit.getY(), exit.getZ(), exit.getYaw(), exit.getPitch());
|
|
+ // PaperSpigot end
|
|
+
|
|
/* CraftBukkit start - We need to do this...
|
|
if (j == 1 && i == 1) {
|
|
BlockPosition blockposition = this.world.r(worldserver1.getSpawn());
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
}
|
|
|
|
// If this player is riding another entity, we must dismount before teleporting.
|
|
- entity.mount(null);
|
|
+ // PaperSpigot start - Teleport passenger/vehicle with player
|
|
+ //entity.mount(null);
|
|
+
|
|
+ Entity vehicle = entity.vehicle;
|
|
+ Entity passenger = entity.passenger;
|
|
+ if (vehicle != null) {
|
|
+ vehicle.passenger = null;
|
|
+ vehicle.teleportTo(location, false);
|
|
+ vehicle = vehicle.getBukkitEntity().getHandle();
|
|
+ entity.vehicle = vehicle;
|
|
+ vehicle.passenger = entity;
|
|
+ }
|
|
+
|
|
+ if (passenger != null) {
|
|
+ passenger.vehicle = null;
|
|
+ passenger.teleportTo(location, false);
|
|
+ passenger = passenger.getBukkitEntity().getHandle();
|
|
+ entity.passenger = passenger;
|
|
+ passenger.vehicle = entity;
|
|
+ }
|
|
+ // PaperSpigot end
|
|
|
|
// Update the From Location
|
|
from = event.getFrom();
|
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
} else {
|
|
server.getHandle().moveToWorld(entity, toWorld.dimension, true, to, true);
|
|
}
|
|
+
|
|
+ // PaperSpigot start - Teleport passenger/vehicle with player
|
|
+ if (vehicle != null) {
|
|
+ vehicle.retrack();
|
|
+ //entity.retrack();
|
|
+ }
|
|
+ if (passenger != null) {
|
|
+ passenger.retrack();
|
|
+ }
|
|
+ // PaperSpigot end
|
|
return true;
|
|
}
|
|
|
|
--
|