public ContainerPlayerExtended(
      InventoryPlayer playerInv, InventoryPlayerExtended eInvo, EntityPlayer player) {

    this.thePlayer = player;
    inventory = eInvo; // new InventoryPlayerExtended(player);
    inventory.setEventHandler(this);
    if (!player.worldObj.isRemote) {
      UtilPlayerInventoryFilestorage.putDataIntoInventory(inventory, player);
      //      inventory.stackList =
      // UtilPlayerInventoryFilestorage.getPlayerInventory(player).stackList;
    }
    for (int k = 0; k < ARMOR.length; k++) {
      final EntityEquipmentSlot slot = ARMOR[k];
      this.addSlotToContainer(
          new Slot(playerInv, 4 * VCOL + (VROW - k), pad, pad + k * SQ) {
            @Override
            public int getSlotStackLimit() {
              return 1;
            }

            @Override
            public boolean isItemValid(ItemStack stack) {
              if (stack == null) {
                return false;
              } else {
                return stack.getItem().isValidArmor(stack, slot, thePlayer);
              }
            }

            @Override
            @SideOnly(Side.CLIENT)
            public String getSlotTexture() {
              return ItemArmor.EMPTY_SLOT_NAMES[slot.getIndex()];
            }
          });
    }
    int xPos, yPos, sl;
    for (int i = 0; i < InventoryPlayerExtended.IROW; ++i) {
      for (int j = 0; j < InventoryPlayerExtended.ICOL; ++j) {
        xPos = pad + (j + 1) * SQ;
        yPos = pad + i * SQ;
        sl = j + (i + 1) * InventoryPlayerExtended.ICOL;
        this.addSlotToContainer(new Slot(inventory, sl, xPos, yPos));
      }
    }
    for (int i = 0; i < VROW; ++i) {
      for (int j = 0; j < VCOL; ++j) {
        xPos = pad + j * SQ;
        yPos = 84 + i * SQ;
        sl = j + (i + 1) * HOTBAR_SIZE;
        this.addSlotToContainer(new Slot(playerInv, sl, xPos, yPos));
      }
    }
    yPos = 142;
    for (int i = 0; i < HOTBAR_SIZE; ++i) {
      xPos = pad + i * SQ;
      sl = i;
      this.addSlotToContainer(new Slot(playerInv, sl, xPos, yPos));
    }
  }
 @Override
 public void putStacksInSlots(ItemStack[] s) {
   inventory.blockEvents = true;
   super.putStacksInSlots(s);
 }