public void readFromNBT(NBTTagCompound nbttagcompound) {

    super.readFromNBT(nbttagcompound);

    usechannel = nbttagcompound.getInteger("usechannel");

    NBTTagList nbttaglist = nbttagcompound.getTagList("Items");
    ItemStacks = new ItemStack[getSizeInventory()];
    for (int i = 0; i < nbttaglist.tagCount(); i++) {
      NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.tagAt(i);
      byte byte0 = nbttagcompound1.getByte("Slot");
      if (byte0 >= 0 && byte0 < ItemStacks.length) {
        ItemStacks[byte0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
      }
    }
  }
  public void writeToNBT(NBTTagCompound nbttagcompound) {

    super.writeToNBT(nbttagcompound);

    nbttagcompound.setInteger("usechannel", usechannel);

    NBTTagList nbttaglist = new NBTTagList();
    for (int i = 0; i < ItemStacks.length; i++) {
      if (ItemStacks[i] != null) {
        NBTTagCompound nbttagcompound1 = new NBTTagCompound();
        nbttagcompound1.setByte("Slot", (byte) i);
        ItemStacks[i].writeToNBT(nbttagcompound1);
        nbttaglist.appendTag(nbttagcompound1);
      }
    }

    nbttagcompound.setTag("Items", nbttaglist);
  }