Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 11:00:06 +01:00
be2edeac2b
Diff to clone the item was lost, which meant that the spawned item was air.
36 Zeilen
2.0 KiB
Diff
36 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sat, 4 Dec 2021 17:04:47 -0800
|
|
Subject: [PATCH] Forward CraftEntity in teleport command
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
index 34cbb7c48535da774527b40f2e99f6f1d31c377d..3df8cfccba9bc4420b37dcbdfc4a12c720b51205 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
|
@@ -3480,6 +3480,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
|
}
|
|
|
|
public void restoreFrom(Entity original) {
|
|
+ // Paper start - Forward CraftEntity in teleport command
|
|
+ CraftEntity bukkitEntity = original.bukkitEntity;
|
|
+ if (bukkitEntity != null) {
|
|
+ bukkitEntity.setHandle(this);
|
|
+ this.bukkitEntity = bukkitEntity;
|
|
+ }
|
|
+ // Paper end - Forward CraftEntity in teleport command
|
|
CompoundTag nbttagcompound = original.saveWithoutId(new CompoundTag());
|
|
|
|
nbttagcompound.remove("Dimension");
|
|
@@ -3615,8 +3622,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
|
entity.restoreFrom(this);
|
|
this.removeAfterChangingDimensions();
|
|
// CraftBukkit start - Forward the CraftEntity to the new entity
|
|
- this.getBukkitEntity().setHandle(entity);
|
|
- entity.bukkitEntity = this.getBukkitEntity();
|
|
+ //this.getBukkitEntity().setHandle(entity);
|
|
+ //entity.bukkitEntity = this.getBukkitEntity(); // Paper - forward CraftEntity in teleport command; moved to Entity#restoreFrom
|
|
// CraftBukkit end
|
|
entity.teleportSetPosition(PositionMoveRotation.of(teleportTarget), teleportTarget.relatives());
|
|
if (this.inWorld) world.addDuringTeleport(entity); // CraftBukkit - Don't spawn the new entity if the current entity isn't spawned
|