diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index aa375cfb3..0ad9c6dac 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -48,9 +48,13 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ if(savedPos.getTileEntity() instanceof TileEntityLaserRelay){ WorldPos otherPos = new WorldPos(world, x, y, z); if(!savedPos.isEqual(otherPos) && savedPos.getWorld() == otherPos.getWorld()){ - LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos); - player.addChatComponentMessage(new ChatComponentText("Connected!")); - ItemPhantomConnector.clearStorage(stack); + if(LaserRelayConnectionHandler.getInstance().addConnection(savedPos, otherPos)){ + player.addChatComponentMessage(new ChatComponentText("Connected!")); + ItemPhantomConnector.clearStorage(stack); + } + else{ + player.addChatComponentMessage(new ChatComponentText("Couldn't connect!")); + } } } else{ diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 126e0c691..249d3fc8c 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -11,6 +11,7 @@ package ellpeck.actuallyadditions.misc; import cofh.api.energy.IEnergyReceiver; +import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.tileentity.TileEntity; @@ -54,7 +55,7 @@ public class LaserRelayConnectionHandler{ * Adds a new connection between two relays * (Puts it into the correct network!) */ - public void addConnection(WorldPos firstRelay, WorldPos secondRelay){ + public boolean addConnection(WorldPos firstRelay, WorldPos secondRelay){ ArrayList firstNetwork = this.getNetworkFor(firstRelay); ArrayList secondNetwork = this.getNetworkFor(secondRelay); @@ -66,7 +67,7 @@ public class LaserRelayConnectionHandler{ } //The same Network else if(firstNetwork == secondNetwork){ - return; + return false; } //Both relays have networks else if(firstNetwork != null && secondNetwork != null){ @@ -83,6 +84,7 @@ public class LaserRelayConnectionHandler{ WorldData.makeDirty(); System.out.println("Connected "+firstRelay.toString()+" to "+secondRelay.toString()); System.out.println(firstNetwork == null ? secondNetwork.toString() : firstNetwork.toString()); + return true; } /** @@ -135,7 +137,7 @@ public class LaserRelayConnectionHandler{ ForgeDirection side = ForgeDirection.getOrientation(i); //Get the TileEntity at the side TileEntity tile = WorldUtil.getTileEntityFromSide(side, relay.getWorld(), relay.getX(), relay.getY(), relay.getZ()); - if(tile instanceof IEnergyReceiver){ + if((tile instanceof TileEntityLaserRelay && this.getNetworkFor(new WorldPos(tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord)) != network) || tile instanceof IEnergyReceiver){ IEnergyReceiver receiver = (IEnergyReceiver)tile; //Does it need Energy? if(receiver.getEnergyStored(side.getOpposite()) < receiver.getMaxEnergyStored(side.getOpposite())){