code: @Override
  	public void process(Packet message, MessageContext ctx)
  	{
  		EntityPlayerSP player = (EntityPlayerSP) Utils.getClientPlayer();
  		if (message.type == ContainerType.TYPE_TILEENTITY)
  		{
  			IDirectInventoryProvider inventoryProvider = TileEntityUtils.getTileEntity(	IDirectInventoryProvider.class,
  																						Utils.getClientWorld(),
  																						message.pos);
  			if (inventoryProvider != null)
  				MalisisInventory.open(player, inventoryProvider, message.windowId);
  		}
  
  		else if (message.type == ContainerType.TYPE_ITEM)
  		{
  			//TODO: send and use slot number instead of limited to equipped
  			ItemStack itemStack = player.getHeldItemMainhand();
  			if (itemStack == null || !(itemStack.getItem() instanceof IDeferredInventoryProvider<?>))
  				return;
  
  			@SuppressWarnings("unchecked")
  			IDeferredInventoryProvider<ItemStack> inventoryProvider = (IDeferredInventoryProvider<ItemStack>) itemStack.getItem();
  			MalisisInventory.open(player, inventoryProvider, itemStack, message.windowId);
  		}
  	}
docs: Handles the received {@link Packet} on the client.<br>
  Opens the GUI for the {@link MalisisInventory}
  
  @param message the message
  @param ctx the ctx