From f58bf5be1847f24cdc4b20aa238052b4d151462c Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Mon, 11 Nov 2019 22:15:34 +0100 Subject: [PATCH] Fixed External Storage not refreshing when the storage is broken or replaced --- CHANGELOG.md | 1 + .../block/ExternalStorageBlock.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c6135a4c..178c3d856 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Removed migration code for the development builds that were released on Discord (not on CurseForge). If you used the development builds and never used version 1.7 before, first switch to 1.7, open your world, modify a storage disk, and then upgrade to 1.7.1 (raoulvdberge) - Grids now do not sort if you interact with it while holding shift (Darkere) - Fixed Pattern Grid causing world hanging on load (raoulvdberge) +- Fixed External Storage not refreshing when the storage is broken or replaced (raoulvdberge) ### 1.7 NOTE: This is an alpha release. Bugs may happen. Remember to take backups. diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/ExternalStorageBlock.java b/src/main/java/com/raoulvdberge/refinedstorage/block/ExternalStorageBlock.java index bb9f08554..628f62735 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/ExternalStorageBlock.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/ExternalStorageBlock.java @@ -1,11 +1,14 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RS; +import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; +import com.raoulvdberge.refinedstorage.apiimpl.network.node.ExternalStorageNetworkNode; import com.raoulvdberge.refinedstorage.container.ExternalStorageContainer; import com.raoulvdberge.refinedstorage.container.factory.PositionalTileContainerProvider; import com.raoulvdberge.refinedstorage.tile.ExternalStorageTile; import com.raoulvdberge.refinedstorage.util.BlockUtils; import com.raoulvdberge.refinedstorage.util.NetworkUtils; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; @@ -99,4 +102,19 @@ public class ExternalStorageBlock extends CableBlock { return true; } + + @Override + public void neighborChanged(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + super.neighborChanged(state, world, pos, block, fromPos, isMoving); + + if (!world.isRemote) { + INetworkNode node = NetworkUtils.getNodeFromTile(world.getTileEntity(pos)); + + if (node instanceof ExternalStorageNetworkNode && + node.getNetwork() != null && + fromPos.equals(pos.offset(((ExternalStorageNetworkNode) node).getDirection()))) { + ((ExternalStorageNetworkNode) node).updateStorage(node.getNetwork()); + } + } + } }