From 74af1bc49ca3ad1d29cf38d2f63c8bc483295acf Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 29 Dec 2016 00:18:19 +0100 Subject: [PATCH] Fix reader writer crashes --- .../raoulvdberge/refinedstorage/block/BlockReader.java | 4 +++- .../raoulvdberge/refinedstorage/block/BlockWriter.java | 4 +++- .../refinedstorage/container/ContainerReaderWriter.java | 4 ++-- .../com/raoulvdberge/refinedstorage/gui/GuiHandler.java | 4 ++-- .../com/raoulvdberge/refinedstorage/tile/TileReader.java | 9 ++++----- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java index ad6cafa12..9aaa6e120 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockReader.java @@ -40,7 +40,9 @@ public class BlockReader extends BlockCable { @Override public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return side == ((TileReader) world.getTileEntity(pos)).getDirection().getOpposite(); + TileEntity tile = world.getTileEntity(pos); + + return tile instanceof TileReader && side == ((TileReader) tile).getDirection().getOpposite(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java index ad0185840..4bcd1c497 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockWriter.java @@ -66,7 +66,9 @@ public class BlockWriter extends BlockCable { @Override public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return side == ((TileWriter) world.getTileEntity(pos)).getDirection().getOpposite(); + TileEntity tile = world.getTileEntity(pos); + + return tile instanceof TileWriter && side == ((TileWriter) tile).getDirection().getOpposite(); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerReaderWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerReaderWriter.java index beb43a1ce..f4bcb5be7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerReaderWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerReaderWriter.java @@ -7,8 +7,8 @@ import net.minecraft.entity.player.EntityPlayer; public class ContainerReaderWriter extends ContainerBase { private IReaderWriter readerWriter; - public ContainerReaderWriter(IReaderWriter readerWriter, EntityPlayer player) { - super((TileBase) readerWriter, player); + public ContainerReaderWriter(IReaderWriter readerWriter, TileBase tile, EntityPlayer player) { + super(tile, player); this.readerWriter = readerWriter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java index 3524f5f40..a0ceebfd8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java @@ -68,7 +68,7 @@ public class GuiHandler implements IGuiHandler { case RSGui.DISK_MANIPULATOR: return new ContainerDiskManipulator((TileDiskManipulator) tile, player); case RSGui.READER_WRITER: - return new ContainerReaderWriter((IReaderWriter) tile, player); + return new ContainerReaderWriter((IReaderWriter) ((TileNode) tile).getNode(), (TileBase) tile, player); case RSGui.SECURITY_MANAGER: return new ContainerSecurityManager((TileSecurityManager) tile, player); default: @@ -146,7 +146,7 @@ public class GuiHandler implements IGuiHandler { case RSGui.WIRELESS_CRAFTING_MONITOR: return getWirelessCraftingMonitorGui(player, x, y); case RSGui.READER_WRITER: - return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IReaderWriter) tile); + return new GuiReaderWriter((ContainerReaderWriter) getContainer(ID, player, tile), (IReaderWriter) ((TileNode) tile).getNode()); case RSGui.SECURITY_MANAGER: return new GuiSecurityManager((ContainerSecurityManager) getContainer(ID, player, tile), (TileSecurityManager) tile); default: diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java index cd22de111..2fbdf839e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java @@ -10,7 +10,6 @@ import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.network.datasync.DataSerializers; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; @@ -18,18 +17,18 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileReader extends TileNode { - static TileDataParameter createChannelParameter() { + static TileDataParameter createChannelParameter() { return new TileDataParameter<>(DataSerializers.STRING, "", new ITileDataProducer() { @Override public String getValue(T tile) { - return tile.getChannel(); + return ((IReaderWriter) tile.getNode()).getChannel(); } }, new ITileDataConsumer() { @Override public void setValue(T tile, String value) { - tile.setChannel(value); + ((IReaderWriter) tile.getNode()).setChannel(value); - tile.markDirty(); + tile.getNode().markDirty(); } }, parameter -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiReaderWriter) {