From d4bc9465b1bdb8fe8227ae22cd66ffef9dc2fd75 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 12 Nov 2016 12:10:49 +0100 Subject: [PATCH] Remove channel from all reader / writers if removed --- .../refinedstorage/tile/IReaderWriter.java | 4 ---- .../refinedstorage/tile/TileController.java | 13 ++++++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/IReaderWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/IReaderWriter.java index edd6154bb..16ef68568 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/IReaderWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/IReaderWriter.java @@ -18,8 +18,6 @@ public interface IReaderWriter extends INetworkNode { if (network != null && !name.isEmpty()) { network.addReaderWriterChannel(name); - - network.sendReaderWriterChannelUpdate(); } } @@ -28,8 +26,6 @@ public interface IReaderWriter extends INetworkNode { if (network != null && !name.isEmpty()) { network.removeReaderWriterChannel(name); - - network.sendReaderWriterChannelUpdate(); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 8aa2da49b..c633e5dfc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -572,11 +572,22 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void addReaderWriterChannel(String name) { readerWriterChannels.put(name, API.instance().createReaderWriterChannel(name, this)); + + sendReaderWriterChannelUpdate(); } @Override public void removeReaderWriterChannel(String name) { - readerWriterChannels.remove(name); + IReaderWriterChannel channel = getReaderWriterChannel(name); + + if (channel != null) { + channel.getReaders().forEach(reader -> reader.setChannel("")); + channel.getWriters().forEach(writer -> writer.setChannel("")); + + readerWriterChannels.remove(name); + + sendReaderWriterChannelUpdate(); + } } @Override