diff --git a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java index b087030f3..ea6af4535 100644 --- a/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java +++ b/src/me/mrCookieSlime/Slimefun/Android/ProgrammableAndroid.java @@ -211,14 +211,17 @@ public abstract class ProgrammableAndroid extends SlimefunItem { boolean allow = reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getBlockInfo(b, "owner").equals(p.getUniqueId().toString()) || p.hasPermission("slimefun.android.bypass")); if (allow) { - if (BlockStorage.getInventory(b).getItemInSlot(43) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(43)); - BlockStorage.getInventory(b).replaceExistingItem(43, null); - } - for (int slot: getOutputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + if (inv.getItemInSlot(43) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(43)); + inv.replaceExistingItem(43, null); + } + for (int slot: getOutputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } AndroidStatusHologram.remove(b); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java index 6d82396a5..d1aec7710 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AContainer.java @@ -140,16 +140,19 @@ public abstract class AContainer extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } - } - for (int slot: getOutputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + for (int slot: getOutputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } processing.remove(b); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java index cb0629219..0f9d83b02 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AFarm.java @@ -68,10 +68,13 @@ public abstract class AFarm extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getOutputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getOutputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java index e75969a9a..54c605294 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AdvancedCargoOutputNode.java @@ -210,10 +210,13 @@ public class AdvancedCargoOutputNode extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java index f0fb5948b..c8dd17562 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AnimalGrowthAccelerator.java @@ -70,10 +70,13 @@ public class AnimalGrowthAccelerator extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAccelerator.getArmorStand(b).remove(); - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java index 0060bd40f..b0642d085 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AutoBreeder.java @@ -70,10 +70,13 @@ public class AutoBreeder extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { me.mrCookieSlime.Slimefun.holograms.AutoBreeder.getArmorStand(b).remove(); - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java index 40d5407c3..8f4ad9bbe 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoCraftingNode.java @@ -105,10 +105,13 @@ public class CargoCraftingNode extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java index 930924d2b..90686153d 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CargoInputNode.java @@ -236,10 +236,13 @@ public class CargoInputNode extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java index fd248be65..781bfca20 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/CropGrowthAccelerator.java @@ -80,10 +80,13 @@ public abstract class CropGrowthAccelerator extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - for (int slot: getInputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getInputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java index 148694fa5..70f12376d 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/XPCollector.java @@ -69,10 +69,13 @@ public class XPCollector extends SlimefunItem { @Override public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { me.mrCookieSlime.Slimefun.holograms.XPCollector.getArmorStand(b).remove(); - for (int slot: getOutputSlots()) { - if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) { - b.getWorld().dropItemNaturally(b.getLocation(), BlockStorage.getInventory(b).getItemInSlot(slot)); - BlockStorage.getInventory(b).replaceExistingItem(slot, null); + BlockMenu inv = BlockStorage.getInventory(b); + if (inv != null) { + for (int slot: getOutputSlots()) { + if (inv.getItemInSlot(slot) != null) { + b.getWorld().dropItemNaturally(b.getLocation(), inv.getItemInSlot(slot)); + inv.replaceExistingItem(slot, null); + } } } return true;