@Override public void writeToNBT(NBTTagCompound tag) { super.writeToNBT(tag); NBTTagList nbttaglist; if (_inventory.length > 0) { nbttaglist = new NBTTagList(); for(int i = 0; i < _inventory.length; i++) { if (_inventory[i] != null && _inventory[i].stackSize > 0) { NBTTagCompound slot = new NBTTagCompound(); slot.setByte("Slot", (byte)i); _inventory[i].writeToNBT(slot); nbttaglist.appendTag(slot); } } tag.setTag("Items", nbttaglist); } IFluidTank[] _tanks = getTanks(); if (_tanks.length > 0) { NBTTagList tanks = new NBTTagList(); for(int i = 0, n = _tanks.length; i < n; i++) { if(_tanks[i].getFluid() != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Tank", (byte)i); FluidStack l = _tanks[i].getFluid(); l.writeToNBT(nbttagcompound1); tanks.appendTag(nbttagcompound1); } } tag.setTag("mTanks", tanks); } if (this.isInvNameLocalized()) { NBTTagCompound display = new NBTTagCompound(); display.setString("Name", getInvName()); tag.setCompoundTag("display", display); } if (failedDrops != null) { nbttaglist = new NBTTagList(); for (ItemStack item : failedDrops) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); item.writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } tag.setTag("DropItems", nbttaglist); } }