diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeManager.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeManager.java index e9ccbce34..e255d7cfd 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeManager.java @@ -77,13 +77,17 @@ public class NetworkNodeManager extends WorldSavedData implements INetworkNodeMa NBTTagList list = new NBTTagList(); for (INetworkNode node : all()) { - NBTTagCompound nodeTag = new NBTTagCompound(); + try { + NBTTagCompound nodeTag = new NBTTagCompound(); - nodeTag.setString(NBT_NODE_ID, node.getId()); - nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong()); - nodeTag.setTag(NBT_NODE_DATA, node.write(new NBTTagCompound())); + nodeTag.setString(NBT_NODE_ID, node.getId()); + nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong()); + nodeTag.setTag(NBT_NODE_DATA, node.write(new NBTTagCompound())); - list.appendTag(nodeTag); + list.appendTag(nodeTag); + } catch (Throwable t) { + t.printStackTrace(); + } } tag.setTag(NBT_NODES, list); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java index 0ae4df931..640f61236 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeFluidStorage.java @@ -76,8 +76,9 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, @Override public void addFluidStorages(List> storages) { - if (storage != null) + if (storage != null) { storages.add(storage); + } } @Override @@ -89,7 +90,9 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); - tag.setUniqueId(NBT_ID, storageId); + if (storageId != null) { + tag.setUniqueId(NBT_ID, storageId); + } return tag; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java index f4c358df4..51da2acc7 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/storage/NetworkNodeStorage.java @@ -71,7 +71,9 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto @Override public void addItemStorages(List> storages) { - if (storage != null) storages.add(storage); + if (storage != null) { + storages.add(storage); + } } @Override @@ -88,7 +90,9 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); - tag.setUniqueId(NBT_ID, storageId); + if (storageId != null) { + tag.setUniqueId(NBT_ID, storageId); + } return tag; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java index c46a93aa7..04081b73e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/OneSixMigrationHelper.java @@ -182,4 +182,8 @@ public class OneSixMigrationHelper implements IOneSixMigrationHelper { public static boolean isValidOneSixPattern(ItemStack stack) { return stack.hasTagCompound() && stack.getTagCompound().hasKey(ItemPattern.NBT_PROCESSING); } + + // If we remove the OneSixMigrationHelper we know where to remove other migration hooks by removing this method. + public static void removalHook() { + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java index e3dcf4b9e..4c4af9b8e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; +import com.raoulvdberge.refinedstorage.apiimpl.util.OneSixMigrationHelper; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; @@ -65,6 +66,18 @@ public abstract class TileNode extends TileBase implement getNode().setActive(tag.getBoolean(NBT_ACTIVE)); } + private EnumFacing directionToMigrate; + + @Override + public void read(NBTTagCompound tag) { + super.read(tag); + + OneSixMigrationHelper.removalHook(); + if (tag.hasKey(NBT_DIRECTION)) { + directionToMigrate = EnumFacing.getFront(tag.getInteger("Direction")); + } + } + @Override @Nullable public IItemHandler getDrops() { @@ -92,6 +105,15 @@ public abstract class TileNode extends TileBase implement manager.markForSaving(); } + OneSixMigrationHelper.removalHook(); + if (directionToMigrate != null) { + ((NetworkNode) node).setDirection(directionToMigrate); + + directionToMigrate = null; + + markDirty(); + } + return (N) node; }