From 3c84c156940a245a4d9b95276f4e6f78673b188e Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 5 Jul 2018 13:49:04 +0200 Subject: [PATCH] Fix rare crash if a storage block is corrupted. --- .../network/node/storage/NetworkNodeFluidStorage.java | 8 ++++++-- .../apiimpl/network/node/storage/NetworkNodeStorage.java | 6 +++++- .../refinedstorage/block/BlockFluidStorage.java | 3 --- .../raoulvdberge/refinedstorage/block/BlockStorage.java | 3 --- .../render/model/baked/BakedModelCover.java | 1 + 5 files changed, 12 insertions(+), 9 deletions(-) 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 ba1541934..5e381de8e 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 @@ -53,7 +53,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, private int compare = IComparer.COMPARE_NBT; private int mode = IFilterable.BLACKLIST; - private UUID storageId; + private UUID storageId = UUID.randomUUID(); private IStorageDisk storage; public NetworkNodeFluidStorage(World world, BlockPos pos) { @@ -79,6 +79,10 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, @Override public void addFluidStorages(List> storages) { + if (storage == null) { + loadStorage(); + } + storages.add(storage); } @@ -176,7 +180,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, if (type == null && world != null) { IBlockState state = world.getBlockState(pos); if (state.getBlock() == RSBlocks.FLUID_STORAGE) { - type = (FluidStorageType) state.getValue(BlockFluidStorage.TYPE); + type = (FluidStorageType) state.getValue(BlockFluidStorage.TYPE); } } 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 78113ec61..4e778478b 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 @@ -53,7 +53,7 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int mode = IFilterable.BLACKLIST; - private UUID storageId; + private UUID storageId = UUID.randomUUID(); private IStorageDisk storage; public NetworkNodeStorage(World world, BlockPos pos) { @@ -74,6 +74,10 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto @Override public void addItemStorages(List> storages) { + if (storage == null) { + loadStorage(); + } + storages.add(storage); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java index af820802e..67937d543 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockFluidStorage.java @@ -23,7 +23,6 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import javax.annotation.Nullable; -import java.util.UUID; public class BlockFluidStorage extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", FluidStorageType.class); @@ -90,8 +89,6 @@ public class BlockFluidStorage extends BlockNode { if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NetworkNodeFluidStorage.NBT_ID)) { storage.setStorageId(stack.getTagCompound().getUniqueId(NetworkNodeFluidStorage.NBT_ID)); - } else { - storage.setStorageId(UUID.randomUUID()); } storage.loadStorage(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java index 4efa847e1..7f854274e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockStorage.java @@ -23,7 +23,6 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import javax.annotation.Nullable; -import java.util.UUID; public class BlockStorage extends BlockNode { public static final PropertyEnum TYPE = PropertyEnum.create("type", ItemStorageType.class); @@ -90,8 +89,6 @@ public class BlockStorage extends BlockNode { if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NetworkNodeStorage.NBT_ID)) { storage.setStorageId(stack.getTagCompound().getUniqueId(NetworkNodeStorage.NBT_ID)); - } else { - storage.setStorageId(UUID.randomUUID()); } storage.loadStorage(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/render/model/baked/BakedModelCover.java b/src/main/java/com/raoulvdberge/refinedstorage/render/model/baked/BakedModelCover.java index 8f5b2be31..2223bf2f7 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/render/model/baked/BakedModelCover.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/render/model/baked/BakedModelCover.java @@ -124,6 +124,7 @@ public class BakedModelCover implements IBakedModel { } @Override + @SuppressWarnings("deprecation") public ItemCameraTransforms getItemCameraTransforms() { return base.getItemCameraTransforms(); }