From 239edfa78a41f985dd75e9f650e3bce3eb18f02f Mon Sep 17 00:00:00 2001 From: asiekierka Date: Tue, 28 Oct 2014 20:19:01 +0100 Subject: [PATCH] add null checks for obsidian pipes, fix #2111 --- api/buildcraft/api/tiles/package-info.java | 12 ++++++++++++ .../transport/pipes/PipeItemsObsidian.java | 10 ++++++++++ 2 files changed, 22 insertions(+) create mode 100644 api/buildcraft/api/tiles/package-info.java diff --git a/api/buildcraft/api/tiles/package-info.java b/api/buildcraft/api/tiles/package-info.java new file mode 100644 index 00000000..8e47bbc5 --- /dev/null +++ b/api/buildcraft/api/tiles/package-info.java @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|tiles") +package buildcraft.api.tiles; +import cpw.mods.fml.common.API; + diff --git a/common/buildcraft/transport/pipes/PipeItemsObsidian.java b/common/buildcraft/transport/pipes/PipeItemsObsidian.java index 2ea21b4c..15409b6d 100644 --- a/common/buildcraft/transport/pipes/PipeItemsObsidian.java +++ b/common/buildcraft/transport/pipes/PipeItemsObsidian.java @@ -216,6 +216,10 @@ public class PipeItemsObsidian extends Pipe implements IEner EntityItem item = (EntityItem) entity; ItemStack contained = item.getEntityItem(); + if (contained == null) { + return; + } + CoreProxy.proxy.obsidianPipePickup(container.getWorldObj(), item, this.container); int energyUsed = Math.min(10 * contained.stackSize * distance, battery.getEnergyStored()); @@ -236,8 +240,14 @@ public class PipeItemsObsidian extends Pipe implements IEner } else if (entity instanceof EntityArrow && battery.useEnergy(distance * 10, distance * 10, false) > 0) { stack = new ItemStack(Items.arrow, 1); CoreProxy.proxy.removeEntity(entity); + } else { + return; } + if (stack == null) { + return; + } + TravelingItem item = TravelingItem.make(container.xCoord + 0.5, container.yCoord + TransportUtils.getPipeFloorOf(stack), container.zCoord + 0.5, stack); item.setSpeed((float) speed);