mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-03 01:10:37 +01:00
64840b3018
Fix NPE when setting a player's spectator target
41 lines
2.1 KiB
Diff
41 lines
2.1 KiB
Diff
From 2dd78c8c6a56d4916b90e8f62d430f7576c7ddcc 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 cd601f29..0c18405a 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.1
|
|
|