Defer loading of TileEntityImbuementAltar#lastUser until after the world is set

This commit is contained in:
Electroblob77
2020-09-21 13:36:40 +01:00
parent adf07a7c98
commit d5ed705f22
@@ -30,6 +30,7 @@ import org.apache.commons.lang3.ArrayUtils;
import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
public class TileEntityImbuementAltar extends TileEntity implements ITickable {
@@ -39,6 +40,8 @@ public class TileEntityImbuementAltar extends TileEntity implements ITickable {
private int imbuementTimer;
private Element displayElement;
private EntityPlayer lastUser;
/** For loading purposes only. This does not get updated once loaded! */
private UUID lastUserUUID;
public TileEntityImbuementAltar(){
stack = ItemStack.EMPTY;
@@ -73,6 +76,8 @@ public class TileEntityImbuementAltar extends TileEntity implements ITickable {
@Override
public void update(){
if(lastUserUUID != null && lastUser == null) lastUser = world.getPlayerEntityByUUID(lastUserUUID);
if(imbuementTimer > 0){
if(imbuementTimer == 1){ // Has to be done here because of syncing
@@ -229,7 +234,7 @@ public class TileEntityImbuementAltar extends TileEntity implements ITickable {
NBTTagCompound itemTag = nbt.getCompoundTag("item");
this.stack = new ItemStack(itemTag);
this.imbuementTimer = nbt.getInteger("imbuementTimer");
this.lastUser = world.getPlayerEntityByUUID(nbt.getUniqueId("lastUser"));
this.lastUserUUID = nbt.getUniqueId("lastUser");
}
@Override