mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-09 04:09:54 +01:00
41 lines
2.1 KiB
Diff
41 lines
2.1 KiB
Diff
|
From e46e19ead9f4a448a08718c466bade12cb589794 Mon Sep 17 00:00:00 2001
|
||
|
From: Aikar <aikar@aikar.co>
|
||
|
Date: Thu, 27 Sep 2018 00:08:31 -0400
|
||
|
Subject: [PATCH] Ignore Dimension NBT field in Entity data
|
||
|
|
||
|
Minecraft is trying to set Dimension Objects based on a Dimension ID
|
||
|
|
||
|
Dimension ID's for custom worlds are dynamically allocate dand not guaranteed
|
||
|
consistent.
|
||
|
|
||
|
This removes checking the NBT data, as the Entity will always have its
|
||
|
DimensionManager set to the world it is being placed into.
|
||
|
|
||
|
This fixes corrupt entities breaking chunk saving in custom worlds.
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||
|
index cd601f29a3..0c18405a8d 100644
|
||
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
||
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||
|
@@ -1583,7 +1583,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||
|
nbttagcompound.setShort("Fire", (short) this.fireTicks);
|
||
|
nbttagcompound.setShort("Air", (short) this.getAirTicks());
|
||
|
nbttagcompound.setBoolean("OnGround", this.onGround);
|
||
|
- nbttagcompound.setInt("Dimension", this.dimension.getDimensionID());
|
||
|
+ //nbttagcompound.setInt("Dimension", this.dimension.getDimensionID()); // Paper - always controlled by world
|
||
|
nbttagcompound.setBoolean("Invulnerable", this.invulnerable);
|
||
|
nbttagcompound.setInt("PortalCooldown", this.portalCooldown);
|
||
|
nbttagcompound.a("UUID", this.getUniqueID());
|
||
|
@@ -1720,7 +1720,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||
|
this.setAirTicks(nbttagcompound.getShort("Air"));
|
||
|
this.onGround = nbttagcompound.getBoolean("OnGround");
|
||
|
if (nbttagcompound.hasKey("Dimension")) {
|
||
|
- this.dimension = DimensionManager.a(nbttagcompound.getInt("Dimension"));
|
||
|
+ //this.dimension = DimensionManager.a(nbttagcompound.getInt("Dimension")); // Paper - always controlled by world
|
||
|
}
|
||
|
|
||
|
this.invulnerable = nbttagcompound.getBoolean("Invulnerable");
|
||
|
--
|
||
|
2.19.0
|
||
|
|