private ItemStack[] getOutputs() { if (this.isCraftingMode()) { final ItemStack out = this.getAndUpdateOutput(); if (out != null && out.stackSize > 0) { return new ItemStack[] {out}; } } else { final List<ItemStack> list = new ArrayList<ItemStack>(3); boolean hasValue = false; for (final OptionalSlotFake outputSlot : this.outputSlots) { final ItemStack out = outputSlot.getStack(); if (out != null && out.stackSize > 0) { list.add(out); hasValue = true; } } if (hasValue) { return list.toArray(new ItemStack[list.size()]); } } return null; }